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

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

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

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

Ответы [ 2 ]

51 голосов
/ 09 февраля 2011
[tableView deselectRowAtIndexPath:indexPath animated:YES];
37 голосов
/ 09 февраля 2011

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

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...