在UITableViewController中的viewWillAppear之后没有调用didDeselectRowAtIndexPath

时间:2012-08-09 15:04:43

标签: iphone ios uitableview viewwillappear

我正在使用UITableViewController子类,clearsSelectionOnViewWillAppear设置为YES(默认值)。

如果在viewWillAppear:上自动取消选择取消选定的单元格,如何更改?

1 个答案:

答案 0 :(得分:3)

tableView:didDeselectRowAtIndexPath:子类中的viewWillAppear:上自动取消选择单元格时,不会调用

UITableViewController

在这种情况下,使用以下代码对取消选择进行更改:

- (void) viewWillAppear:(BOOL)animated {
    // HACK: Need to be called before super if the selection is cleared on viewWillAppear. 
    UITableViewCell* cell = [self.tableView cellForRowAtIndexPath:self.tableView.indexPathForSelectedRow];
    // Change the cell
    [super viewWillAppear:animated];
}

通常,如果您使用deselectRowAtIndexPath:animated:,则不会调用tableView:didDeselectRowAtIndexPath: