Кнопка редактирования / просмотра UITableview - PullRequest
14 голосов
/ 25 марта 2011

У меня есть таблица и панель навигации в верхней части.

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

self.navigationItem.leftBarButtonItem = self.editButtonItem;

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

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

Ответы [ 3 ]

55 голосов
/ 22 ноября 2011

Кнопка прекращает фиксацию изменений в вашем классе контроллера, когда вы переопределяете его действие по умолчанию с помощью 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 - это вспомогательное свойство, уже установленное системой для вашего удобства.

6 голосов
/ 29 октября 2015

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

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

    if editing {

    } else {

    }
}
1 голос
/ 17 ноября 2018

вот что я сделал на Swift 4:

это кнопка создания панели в viewDidLoad ():

// init barbutton and set default to true
    self.navigationItem.rightBarButtonItem = self.editButtonItem
    super.isEditing = true

добавить переопределение setEditing () под viewDidLoad ():

    override func setEditing (_ editing:Bool, animated:Bool)
{
    super.setEditing(editing,animated:animated)
    if(self.isEditing)
    {
        self.editButtonItem.title = "Edit"
    }else
    {
        self.editButtonItem.title = "Done"
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...