使用didSelectRowAtIndexPath完成某些操作后如何取消选择UITableViewCell?

Tor*_*ups 23 objective-c uitableview

目前我在didSelectRowAtIndexPath委托中做了一些工作,并注意到我稍后回到视图控制器后仍然"选中"了我的行.

如何在委托本身内取消选择此行?

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
  //do logic and ... it remains selected in the view?
}
Run Code Online (Sandbox Code Playgroud)

小智 52

[tableView deselectRowAtIndexPath:indexPath animated:YES];
Run Code Online (Sandbox Code Playgroud)


CIF*_*ter 37

通常,您希望在视图控制器再次出现时取消选择该行:

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];

    [self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];
}
Run Code Online (Sandbox Code Playgroud)

这就是UITableViewController隐含的,并且在视图控制器再次出现之后动画取消选择过程对于用户关于他们先前选择的单元格是有用的提示.