最终编辑
经过进一步调查,我认为最好重新发布该问题,并提供有关特定问题的更多信息。
这个问题似乎只发生在 iOS7 上。我已经在 iOS6 上进行了测试,并且没有问题。
-- 设置 设置是你有一个UIViewController
(例如第一个 VC),它包含一个 tableView 并且是数据源/委托。当 tableView 中的单元格被选中/点击时,您对 Second View Controller 执行 segue(现在可以为空)。
问题
问题是转场不会立即发生。不出所料,一秒之内。segue 中没有传递任何数据,也没有在第二个视图控制器中加载任何内容,因此您希望它是即时的。
有时,这可以正常工作,没有任何问题。其他时候,您将单击单元格并且什么都不会发生。
--注意趋势我注意到的是,当“问题”发生时。模拟器/设备将等到下一分钟开始,然后强制通过模态视图控制器的负载。或者当问题发生时,您可以再次单击/点击设备屏幕上的任意位置以“强制”加载。
这个问题可以在一个新项目中重现,只要有基础知识。我已经上传了一个包含这个的示例项目 zip。
附加代码(如果需要)
我有一个自定义单元设置。选择单元格后,我执行以下操作:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
NSLog(@"%s",__PRETTY_FUNCTION__);
if (indexPath.section == 0) {
[self performSegueWithIdentifier:@"selectGameTurnDiff" sender:self];
}
}
然后我在 prepareForSegue 中有以下内容:
-(void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
NSLog(@"%s",__PRETTY_FUNCTION__);
[super prepareForSegue:segue sender:sender];
}
日志记录
以下是一些示例日志来显示这一点: Run 1
2013-10-09 23:54:09.855 App[14954:a0b] -[FirstViewController tableView:didSelectRowAtIndexPath:]
2013-10-09 23:54:09.857 App[14954:a0b ] -[FirstViewController prepareForSegue:sender:]
2013-10-09 23:55:00.004 App[14954:a0b] -[SecondViewController viewDidLoad]
2013-10-09 23:55:00.004 App[14954:a0b] -[SecondViewController viewWillAppear :]
2013-10-09 23:55:00.511 应用程序[14954:a0b]-[SecondViewController viewDidAppear:]
运行 2
2013-10-09 23:56:21.900 App[14954:a0b] -[FirstViewController tableView:didSelectRowAtIndexPath:]
2013-10-09 23:56:21.901 App[14954:a0b] -[FirstViewController prepareForSegue:sender:]
2013-10-09 23:57:00.003 App[14954:a0b]-[SecondViewController viewDidLoad]
2013-10-09 23:57:00.003 App[14954:a0b]-[SecondViewController viewWillAppear:]
2013-10-09 23: 57:00.508 应用[14954:a0b]-[SecondViewController viewDidAppear:]
运行 3
2013-10-09 23:57:43.387 App[14954:a0b] -[FirstViewController tableView:didSelectRowAtIndexPath:]
2013-10-09 23:57:43.388 App[14954:a0b] -[FirstViewController prepareForSegue:sender:]
2013-10-09 23:58:00.004 App[14954:a0b]-[SecondViewController viewDidLoad]
2013-10-09 23:58:00.004 App[14954:a0b]-[SecondViewController viewWillAppear:]
2013-10-09 23: 58:00.510 应用[14954:a0b]-[SecondViewController viewDidAppear:]