It may not be obvious but the proper way to deselect a cell is this:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
[self.tableView deselectRowAtIndexPath:[self.tableView indexPathForSelectedRow]
animated:YES];
}
And of course not in - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath. And the reason is that when you return from the details page you see how the cell is being deselected, which hints you about your previous choice and just looks nice.






