当segue到另一个UITableViewController时,UITableViewController冻结

时间:2013-10-17 16:24:53

标签: iphone ios objective-c uitableview uiviewcontroller

我将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];
}

1 个答案:

答案 0 :(得分:4)

事实证明我的问题是由于尝试使用外观代理来设置UITableView的backgroundView。在文档(https://developer.apple.com/library/ios/documentation/uikit/reference/UIAppearance_Protocol/Reference/Reference.html)中找到UITableView backgroundView未标记为UI_APPEARANCE_SELECTOR。