ios - 对 UITableView 使用 didSelectRowAtIndexPath 或 p

我正在使用 Storyboard ,并且我有一个 UITableView。我有一个从我的表推送到详细 VC 的 segue 设置。但是我应该使用哪种方法来处理这个问题?我必须将几个对象传递给详细 View 。但是我是使用 didSelectRowAtIndex 还是 -(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender

最佳答案

如果您使用 prepareForSegue:sender:,那么如果您稍后决定从表格 View 之外的某个控件触发 segue,您将无需进行太多更改。

prepareForSegue:sender: 消息被发送到当前 View Controller ,所以我建议这样:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // Assume self.view is the table view
    NSIndexPath *path = [self.tableView indexPathForSelectedRow];
    DetailObject *detail = [self detailForIndexPath:path];
    [segue.destinationViewController setDetail:detail];
}

在 swift 中:

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    let path = self.tableView.indexPathForSelectedRow()!
    segue.destinationViewController.detail = self.detailForIndexPath(path)
}

关于ios - 对 UITableView 使用 didSelectRowAtIndexPath 或 prepareForSegue 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8130600/

相关文章:

ios - UIAlertView 首先弃用 IOS 9

objective-c - NSString 带\n 或换行符

ios - 如何将度数转换为弧度?

iphone - 即使图像较小,如何使 UITableViewCell 的 ImageView 成为

ios - 快速创建和播放声音

ios - 如何让 UILabel 显示轮廓文本?

objective-c - iOS 7.0.3 上的 "HelveticaNeue-Italic"发

objective-c - 如何将 int 转换为 NSString?

ios - UICollectionView 当前可见单元格索引

objective-c - libxml/tree.h 没有这样的文件或目录