Кнопка редактирования/завершения UITableview

У меня есть панель обзора и навигации вверху.

У меня есть кнопка "Редактировать" слева от моей панели навигации со следующей строкой кода.

self.navigationItem.leftBarButtonItem = self.editButtonItem;

Когда я нажимаю кнопку редактирования, она изменяется на кнопку "Готово". Пока все хорошо.

Где я могу добавить код, если я хочу сделать небольшую операцию, когда нажата кнопка "Готово".?

Ответ 1

Кнопка останавливает внесение изменений в класс контроллера, как только вы переопределяете действие по умолчанию с помощью self.editButtonItem.action = @selector(editClicked:);

Что вы должны сделать, это переопределить метод setEditing UIViewController в вашем собственном классе контроллера:

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

    if(editing == YES) 
    {
        // Your code for entering edit mode goes here
    } else {
        // Your code for exiting edit mode goes here
    }
}

Вам также нужно установить UIBarButtonItem в "Редактировать" в раскадровке или если вы предпочитаете делать это в коде, используйте следующее:

- (void)viewDidLoad {
    [super viewDidLoad];

    self.navigationItem.rightBarButtonItem = self.editButtonItem;
}

editButtonItem - это вспомогательное свойство, уже установленное системой для вашего удобства.

Ответ 2

Вот быстрая версия, которую я использовал:

override func setEditing(editing: Bool, animated: Bool) {
    super.setEditing(editing, animated: animated)

    if editing {

    } else {

    }
}