UITableViewの編集モードへの移行方法メモ

iPhoneアプリでテーブルビューを表示する方法は、UITableViewControllerのサブクラスを使用する方法と、UIViewControllerのサブクラスでUITableViewDelegateとUITableViewDataSourceプロトコルを実装する方法の2通りがある。
前者の場合、ナビゲーションバーに編集ボタンを追加し、その編集ボタンをユーザが押すとテーブルビューが編集モードに自動的に入る(削除、追加等の編集時の処理は自分で実装する必要有)。

- (void)viewDidLoad {
    [super viewDidLoad];
    self.navigationItem.rightBarButtonItem = self.editButtonItem;
}


テーブルビューが編集モードに入ると以下のような感じになる。


一方、後者のようにUITableViewDelegateとUITableViewDataSourceプロトコルを実装してテーブルビューを表示している場合、上記のコードだけでは編集ボタンはナビゲーションバーに表示されるものの、そのボタンを押しても自動的には編集モードに入らない。
これはUITableViewControllerを継承していないため、UITableViewのsetEditingメソッドが呼ばれていない事が原因と思われる。
そこで、以下のようなコードを追加し、UITableViewのsetEditingメソッドを手動で呼び出す事で、編集モードへ移行させる事が出来た。

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