我遇到了从NIB加载的View Controller的问题。在这个NIB我有2个视图,一个风景和肖像。当willAnimateForRotation发生时,我设置
// willAnimateForRotation..
if (isLandscape) {
self.view = self.viewLandscape;
}
else {
self.view = self.portraitView;
}
在开始时我将两个表都设置为编辑模式:
// viewDidLoad
[self.tableViewPortrait setEditing:YES animated:NO];
[self.tableViewLandscape setEditing:YES animated:NO]; // *
// *
我很确定这一行导致在此时在tableViewLandscape上调用cellForRow,而不是在我设置self.tableView = self.tableViewLandscape
它只在第一次发生,如果我执行2次方向更改,它会正确地将项加载到tableView中。
我不想在方向更改中执行[self.tableView reloadData] ..这将是多余的。
任何人都可以看到更优雅的方式解决这个问题吗?
答案 0 :(得分:0)
好的,我能想到的最好的是:
//willAnimateToRotation..
if (!self.tableViewLandscape.editing)
{
[self.tableViewLandscape setEditing:YES animated:NO];
}
它是一个廉价的黑客,但想不出更正确的解决方案。