UITableView Edit / Done события - PullRequest
       17

UITableView Edit / Done события

7 голосов
/ 15 декабря 2010

Есть ли способ уведомления или делегата, который я могу использовать, чтобы определить, когда представление таблицы переходит в состояние редактирования?

Что я хочу сделать, это определить, что таблица редактирует, а затем отобразить дополнительную строкус надписью «Добавить новый элемент» или что-то в этом роде.

Я пытался добавить строку «Добавить новый элемент» в конец массива, когда загружен View Controller, и затем в зависимости от того, является ли [tableView isEditing]Верно или нет, либо вернуть [количество массивов] (для случая, когда я редактирую) или [количество элементов массива] - 1 (для случая, когда я не редактирую).

Есть идеи?Как Apple редактирует элементы в таблице и позволяет удалять?

Ответы [ 2 ]

6 голосов
/ 04 февраля 2011

Я нашел это. Переопределите этот метод:

- (void)setEditing:(BOOL)editing animated:(BOOL)animated{
    [super setEditing:editing animated:animated];

    // do something
}
3 голосов
/ 21 марта 2013

Что вы можете сделать, это добавить IBAction в качестве селектора в вашу кнопку edit.При нажатии editButton этот метод будет вызван.Пример:

-(void)viewDidLoad
{
// ...
[self.editButtonItem setAction:@selector(editAction:)];
[self.navigationItem setRightBarButtonItem: self.editButtonItem];

// .. your code

}

-(IBAction)editAction:(id)sender
{
    UIBarButtonItem * button = ((UIBarButtonItem*)sender);

    if (!self.tableView.editing)
    {
        [self.tableView setEditing:YES animated:YES];
        [button setTitle:@"Done"];
        // do your stuff...
    }
    else
    {
        [button setTitle:@"Edit"];
        [self.tableView setEditing:NO animated:YES];
        // do your stuff...
    }
}

Если у вас есть собственная UIButton и вы не используете стандартный self.editButtonItem, тогда используйте [yourButton addTarget: self action: @selector (editAction :) forControlEvents: UIControlEventTouchUpInside];И обрабатывать его как UIButton * в editAction: метод

...