当选择UITableView行时,是否调用prepareForSegue?

fuz*_*oat 13 iphone objective-c uitableview segue

我使用NSFetchedResultsController设置了一个UITableView,它显示了许多原型UITableViewCells.我已经从我的UITableViewCell连接到我的DetailViewController的push segue.

在我的TableViewController中,我实现了两个:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"%s", __PRETTY_FUNCTION__);
    [tableView deselectRowAtIndexPath:indexPath animated:YES];
}

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
    NSLog(@"%s", __PRETTY_FUNCTION__);
}
Run Code Online (Sandbox Code Playgroud)

当我运行应用程序并单击tableView中的一行时,我的应用程序只调用:

[TableViewController tableView:didSelectRowAtIndexPath:]
[TableViewController tableView:didSelectRowAtIndexPath:]
[TableViewController tableView:didSelectRowAtIndexPath:]
Run Code Online (Sandbox Code Playgroud)

如果我删除segue并将其重新连接到DetailViewController的UIBarButtonItem,那么segue被正确调用,任何人都可以想到我错过了什么?

编辑:

添加:

- (IBAction)tester:(id)sender {
    [self performSegueWithIdentifier:@"SEGTEST" sender:nil];
}
Run Code Online (Sandbox Code Playgroud)

并将它连接到一个名为"tester"的UIButtonBarItem并且它可以正常工作,当我从UITableViewCell链接到控制器时,我无法将它连接起来.

fuz*_*oat 31

经过一些挖掘后,我终于发现UITableViewCell标识符设置错误为" CELL_ID"应该是" PLANTCELL_ID".

对于发现UITableViewCell在a UITableView中选择a 并未调用关联segue的任何其他人,请检查是否在故事板中正确设置了您的单元标识符tableView:cellForRowAtIndexPath:.


Dar*_*ren 6

ViewController自身中重新连接你的segue 并给它命名.然后在didSelectRow方法调用中

[self performSegueWithIdentifier:@"yourSegueName"];    
Run Code Online (Sandbox Code Playgroud)

并看看它是否会发生火灾.