Я создаю функцию для отслеживания сроков. Когда вы выбираете строку в представлении таблицы крайнего срока, я меняю accessoryType на Checkmark. Это прекрасно работает с этим кодом:
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
Cell *selectedCell = (Cell *)[tableView cellForRowAtIndexPath: indexPath];
if (selectedCell.accessoryType == UITableViewCellAccessoryNone) {
[Deadline setDone: TRUE onIndex:indexPath.row];
selectedCell.accessoryType = UITableViewCellAccessoryCheckmark;
} else {
[Deadline setDone: FALSE onIndex:indexPath.row];
selectedCell.accessoryType = UITableViewCellAccessoryNone;
}
[tableView deselectRowAtIndexPath:indexPath animated: YES];
}
Проблема возникает, когда вы выбрали ячейку таблицы и прокручивали ее так, чтобы она исчезла, когда снова появится, accessoryType снова None.
Мой код для определения accessoryType в cellForRowAtIndexPath:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"CellIdentifier";
Deadline *d = [self.arrDeadlines objectAtIndex:indexPath.row];
Cell *currCell = (Cell *)[tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (currCell == nil)
{
UIViewController *c = [[UIViewController alloc] initWithNibName:@"Cell" bundle:nil];
currCell = (Cell *)c.view;
[c release];
}
currCell.lblTitle.text = d.name;
currCell.accessoryType = d.done == TRUE ? UITableViewCellAccessoryCheckmark : UITableViewCellAccessoryNone;
return currCell;
}
Как мне это решить?