Ну, вы должны сначала убедиться, что вы ставите галочку в нужной ячейке:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell * cell_to_alter = [tableView cellForRowAtIndexPath:indexPath];
cell_to_alter.accessoryType = UITableViewCellAccessoryCheckmark;
}
Теперь вам нужно понять, что iOS по умолчанию повторно использует ячейки таблицы - поэтому, когда одна ячейка перетаскивается на экран, она может использоваться для отображения содержимого другой ячейки.
Вы должны учитывать это поведение при разработке метода cellForRowAtIndexPath: .
(в основном - проверьте, должна ли ячейка иметь галочку и добавьте ее в ячейку, и CLEAR , если она не должна иметь).