Подтвердить что ты не робот

Как отменить выбор UITableViewCell после того, как вы сделали какое-то действие, используя didSelectRowAtIndexPath?

В настоящее время я выполняю некоторую работу внутри делегата didSelectRowAtIndexPath и заметил, что моя строка все еще "выбрана" после того, как я вернусь к контроллеру представления позже.

Как я могу отменить выбор этой строки внутри самого делегата?

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

Ответ 1

[tableView deselectRowAtIndexPath:indexPath animated:YES];

Ответ 2

Как правило, вы хотите отменить выделение строки, когда контроллер просмотра снова появится:

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

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

То, что UITableViewController делает неявным образом, а анимировать процесс отмены выбора после того, как контроллер представления появляется снова, является полезным советом для пользователя относительно того, какую ячейку они выбрали ранее.