У меня есть собственный подкласс UITableViewController, который использует набор пользовательских подклассов UITableViewCells.
Ничего особенного. Ячейки таблицы имеют два подпредставления в представлении содержимого.
Прямо сейчас у меня есть пользователь, выбирающий ячейку, контроллер навигации выдвигает на экран выбора цвета. Пользователь выбирает цвет. Отлично. Представление таблицы является делегатом этого представления. Он получает цвет, обновляет выбранную ячейку, так что подпредставление теперь использует этот цвет фона, а затем извлекает текущее представление из контроллера навигации.
Все работает! TableViewController возвращается в вид, и индикатор в ячейке теперь отображает цвет фона, выбранный пользователем. НО после того, как появится табличное представление, ячейка, выделенная для ячейки, будет автоматически выделена синим цветом. Это некоторая встроенная магия из TableViewController. Это хорошо, но это сбрасывает статус индикатора моей ячейки.
Проблема в том, что я не могу найти, где правильно обновить ячейку до этого нового цвета. Цвет хранится в виде ивара в tableViewController. Поэтому я решил попробовать это по адресу:
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath
Но, увы, этот метод не срабатывает из-за волшебства, которое UIKit делает для краткого выделения ячейки. Любые идеи, где мне нужно обновить свою ячейку правильно?