Как удалить ячейки из табличного представления? - PullRequest
1 голос
/ 15 января 2010

У меня на панели навигации есть кнопка «Редактировать», и у меня есть табличное представление.

Моя кнопка редактирования вызывает метод -editAction.

И затем, у меня есть этот кусок кода, чтобы удалить ячейку, но я не знаю, как сделать кнопку редактирования, чтобы вызвать этот код ... или как кнопка редактирования может позволить табличному представлению отображать эти красные удалите круги для каждой ячейки, которые затем вызывают это:

// Override to support editing the table view.
- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
    if (editingStyle == UITableViewCellEditingStyleDelete) {
        // Delete the managed object at the given index path
        NSManagedObject *eventToDelete = [eventsArray objectAtIndex:indexPath.row];
        [managedObjectContext deleteObject:eventToDelete];

        // Update Event objects array and table view
        [eventsArray removeObjectAtIndex:indexPath.row];
        [tableView deleteRowsAtIndexPaths:[NSArray arrayWithObject:indexPath] withRowAnimation:YES];

        // Commit the change
        NSError *error;
        if (![managedObjectContext save:&error]) {
            // Handle the error
        }
    } 
}

Ответы [ 2 ]

3 голосов
/ 15 января 2010

Согласно справочному документу класса UITableView, код:

tableView.editing = YES;

Следует перевести таблицу в режим редактирования и отобразить эти красные кружки удаления. Затем, когда пользователь удаляет ячейку, должен вызываться ваш метод источника данных.

Вы также можете использовать [tableView setEditing:YES animated:YES]; для анимационного эффекта

2 голосов
/ 15 января 2010

В методе -view вашего контроллера -viewDidLoad добавьте кнопку Изменить:

self.navigationItem.rightBarButtonItem = self.editButtonItem;

Эта кнопка переключит режим редактирования контроллера, отправив его -setEditing: animated:

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...