我将TableViewController(VC1)设置为push-segue到另一个TableViewController(VC2)。此连接是通过从VC1到VC2的ctrl-drag在故事板中进行的。当执行segue时,应用程序冻结,我看到CPU挂钩达到100%并且内存使用率开始快速攀升。我从一个自定义VC2开始,看到调用了viewWillAppear,并且正确执行了诸如numberOfRowsInSection之类的表委托方法。
为了缩小问题的范围我可以看到,即使是像VC2这样的vanilla UITableViewController(没有自定义控制器类)也存在同样的问题。但是当我将VC2设置为一个普通的UIViewController(而不是表格)时,它就会很好。
我还有十几个其他TableView - > TableView在我的应用程序中的其他位置以相同的方式设置,并且没有问题。
VC1代码:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
[self performSegueWithIdentifier:@"myseguename" sender:self];
}
答案 0 :(得分:4)
事实证明我的问题是由于尝试使用外观代理来设置UITableView的backgroundView。在文档(https://developer.apple.com/library/ios/documentation/uikit/reference/UIAppearance_Protocol/Reference/Reference.html)中找到UITableView backgroundView未标记为UI_APPEARANCE_SELECTOR。