Иногда, когда вы не в UIViewController
, у вас нет viewWillAppear
, а иногда вы создали UITableView
программно.
Простым решением является реализация этого delegate
метода:
- (void)tableView:(UITableView *)tableView
willDisplayCell:(UITableViewCell *)cell
forRowAtIndexPath:(NSIndexPath *)indexPath {
if (self.selectedIndex == indexPath.row) {
cell.selected = YES;
}
}
Это не работает в cellForRowAtIndexPath
, потому что ячейка еще не отображается. и метод setSelected
вызывается именно тогда, когда отображается этот метод.