tableView setEditing导致不会过早调用cellForRow

时间:2012-03-07 19:38:52

标签: iphone uitableview orientation

我遇到了从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] ..这将是多余的。

任何人都可以看到更优雅的方式解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

好的,我能想到的最好的是:

//willAnimateToRotation..
if (!self.tableViewLandscape.editing)
{
    [self.tableViewLandscape setEditing:YES animated:NO];
}

它是一个廉价的黑客,但想不出更正确的解决方案。