edit
Ну, разве я не чувствую себя идиотом.До сих пор я не обращал внимания на то, получает ли клетка галочку.Каким-то образом у меня перевернулись UITableViewCellAccessoryCheckmark
и UITableViewCellAccessoryNone
, поэтому он выключался, когда я хотел, и включался, когда я хотел его.Правильное чтение кода действительно помогает при отладке ...
/edit
Ниже приведен код, с которым у меня было так много проблем.
С tableView:didSelectRowAtIndexPath:
if (i.need == 0) { // item not needed - hide (#) and turn on checkmark
i.need = 1;
cell.textLabel.text = [NSString stringWithFormat:@"%@", i.name];
cell.accessoryType = UITableViewCellAccessoryNone;
} else if (i.need < 0) { // item not needed - hide (#) and turn on checkmark
i.need = -i.need;
cell.textLabel.text = [NSString stringWithFormat:@"%@", i.name];
cell.accessoryType = UITableViewCellAccessoryNone;
} else { // item not needed - show (#) and turn off checkmark
i.need = -i.need;
cell.textLabel.text = [NSString stringWithFormat:@"%@ (%d)", i.name, -i.need];
cell.accessoryType = UITableViewCellAccessoryCheckmark;
}
Вот что вы получаете за эту ошибку.
Tap row with checkmark: (#) hidden, checkmark removed
Tap row without checkmark: (#) shown, checkmark not set until next tap