Проблема с deselectRowAtIndexPath в tableView

У меня есть ячейка с несколькими строками текста, которая меняет цвет при выборе/подсвечивании. Проблема в том, что по мере того, как новый viewController толкается, происходит анимация отмены выделения, которая визуально отвлекает, когда текст внезапно возвращается в невыбранное состояние. Я переместил инструкцию deselectRowAtIndexPath после строки, в которую был нажат новый контроллер представления, но это не имеет никакого эффекта.

Как я могу запретить пользователю видеть отмена выбора ячейки (без реализации таймера)? Любая помощь будет оценена пожалуйста.

Ответ 1

Я думаю, что общая парадигма, используемая с представлениями таблиц и нажатием новых VC, заключается в том, что вы отмените выбор строки таблицы в методе viewWillAppear:animated. Затем, когда VC выскочил, они видят, какая строка использовалась для перехода к этому VC.

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

    [self.myTableView deselectRowAtIndexPath:[myTableView indexPathForSelectedRow] animated:YES];

}

удалите deselectRow из вашего метода didSelectRowAtIndexPath.

Ответ 2

Если вы используете UITableViewController, вам не нужно вызывать deselectRowAtIndexPath:. Это будет сделано для вас автоматически, когда ваш вид таблицы станет видимым снова.

Если вы не используете UITableViewController, потому что у вас более сложный интерфейс, вам нужно будет вызвать deselectRowAtIndexPath: вручную из метода viewWillAppear:animated:.