我使用NSFetchedResultsController设置了一个UITableView,它显示了许多原型UITableViewCells。我已经从我的UITableViewCell连接到我的DetailViewController的推送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__);
}
当我运行应用程序并单击tableView中的一行时,我的应用程序只调用:
[TableViewController tableView:didSelectRowAtIndexPath:]
[TableViewController tableView:didSelectRowAtIndexPath:]
[TableViewController tableView:didSelectRowAtIndexPath:]
如果我删除segue并将其重新连接,形成一个UIBarButtonItem到DetailViewController,那么segue被正确调用,任何人都可以想到我缺少的东西吗?
添加了:
- (IBAction)tester:(id)sender {
[self performSegueWithIdentifier:@"SEGTEST" sender:nil];
}
并将它连接到一个名为“tester”的UIButtonBarItem并且它可以正常工作,当我从UITableViewCell链接到控制器时,我无法激活它。
答案 0 :(得分:31)
经过一番挖掘后,我发现UITableViewCell
标识符错误地设置为“CELL_ID
”时应该是“PLANTCELL_ID
”。
对于发现在UITableViewCell
中选择UITableView
而未调用关联的segue的其他人,检查您是否在故事板和{{1}中正确设置了您的小区标识符}} 强>
答案 1 :(得分:6)
从ViewController
本身重新连接您的segue,并为其命名。
然后在didSelectRow
方法调用
[self performSegueWithIdentifier:@"yourSegueName"];
然后看它是否会发射。