我正在使用 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/