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

时间:2011-02-08 22:59:55

标签: objective-c uitableview

目前我在didSelectRowAtIndexPath委托中做了一些工作,发现在我稍后回到视图控制器后,我的行仍然被“选中”。

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

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

2 个答案:

答案 0 :(得分:51)

[tableView deselectRowAtIndexPath:indexPath animated:YES];

答案 1 :(得分:37)

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

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

    [self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow] animated:YES];
}

UITableViewController隐含地执行此操作,并且在视图控制器再次出现后设置取消选择过程的动画对用户有关他们之前选择的单元格的有用提示。