UITableViewControllers は、clearsSelectionOnViewWillAppear
プロパティが YES に設定されている場合、viewWillAppear で選択された行を選択解除します。その設定でテーブルビューコントローラーを使用していない場合(デフォルトはYESだと思います)、自分でやってください:
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];
[self.tableView deselectRowAtIndexPath:indexPath animated:YES];
}
did (または will) deselect デリゲート メソッドを実装し、色を修正します。
- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath {
UITableViewCell *cell = [tableView cellForRowAtIndexPath:indexPath];
// do what you want to the cell
}
ちなみに、SO の他の人は、セルのコンテンツ ビュー (cell.backgroundColor
ではなくcell.contentView.backgroundColor
) で色を設定し、 でそれを行うことを推奨していwillDisplayCell:forRowAtIndexPath:
ます。