まずeditButtonItemについて軽く説明
TableViewでよく見る、丸い赤い横棒の入ったボタンを押してセルを消したりするやつです。
↑こういうやつ。
editButtonItemはほんとに便利で、下記みたいな感じでviewDidLoadあたりでボタンを設置するだけで、セルを削除する機能が追加できてしまいます。
self.navigationItem.rightBarButtonItem = [self editButtonItem];
さて、ここから本題。
editButtonItemを押した時に、削除以外にも色々したいなーって時。
そういうときは以下のメソッドをオーバーライドします。(対象のUIViewControllerに丸ごとコピペする。)
// 編集モードになった時に呼ばれるメソッド
- (void)setEditing:(BOOL)editing animated:(BOOL)animated {
NSLog(@"%s", __func__);
[super setEditing:editing animated:animated];
if (editing) {
// 編集モードの処理
NSLog(@"編集モードに入りました。");
}else{
// 編集モードから戻った時の処理
NSLog(@"編集モードから出ました。");
}
}
こうやって書くだけでオッケー。
これで、編集モードの時だけ何か表示したい!などという要求にも対応出来ますね。