UITableView Редактирование не работает - PullRequest
2 голосов
/ 26 мая 2011

У меня есть UITableView, который лежит в NavigationController, который находится в поповере.Итак, я поместил edit / done UIToolBarItem, который работает нормально, и вы можете увидеть, как появляется значок удаления аксессуара.Однако, когда я переставляю элементы, кнопка edit / done перестает работать ...

Я отладил, и он все еще вызывается, но, похоже, он не обновляется и является своего рода предотвращением любых дальнейших обновлений от других кнопок.,Возможно, это проблема с симулятором?

Спасибо за помощь заранее!

Редактировать: Добавление кода

addButton = [[UIBarButtonItem alloc] initWithTitle:@"Edit" style:UIBarButtonItemStyleBordered     target:self action:@selector(editTable:)];

А позже метод:

- (IBAction) editTable: (id) sender
{
    if ([[addButton title] isEqualToString:EDIT_STRING]) {
        [addButton setTitle:DONE_STRING]; //enabling edit mode  
        [super setEditing:YES animated:YES];
        [[self tableView] setEditing:YES animated:YES];
    }
    else {
        [addButton setTitle:EDIT_STRING]; //done with editing
        [[self tableView] setEditing:NO animated:YES];
        [super setEditing:NO animated:YES];

        [[self tableView] setNeedsDisplay];
        [[self tableView] reloadData];  
    }
}

Вторая часть определенно вызывается при изменении текста addButton.Тем не менее, он перестает работать, как только я сделаю правку (например, перестановка строки)

Ответы [ 2 ]

3 голосов
/ 27 мая 2011

Хорошо,

Я, кажется, вызывал [tableView beginUpdates] и никогда не вызывал endUpdates, из-за чего все обновления не регистрировались.Если кто-то еще делает это ...

0 голосов
/ 27 мая 2011
- (void)tableView:(UITableView *)tableview commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        [self.tv deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:UITableViewRowAnimationFade];
        [self.tv reloadData];
    }
}

- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
    [super setEditing:editing animated:animated];
    [self.tv setEditing:editing animated:YES];
}
...