1

我正在使用设置为(默认值)的UITableViewController子类。clearsSelectionOnViewWillAppearYES

当自动取消选择时,如何对取消选择的单元格进行更改viewWillAppear:

4

1 回答 1

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:将不会被调用。

于 2012-08-09T15:04:42.830 回答