【Swift】UITableViewにおける編集ボタンにUIButtonを使う方法。


こんにちは、iPhoneアプリ開発者の中川です。

iPhoneアプリ開発をしていると度々登場するUITableView。
画面を設計していると、ナビゲーションバーが邪魔だと感じることがあると思います。(画面を広く使いたい等)しかし、ナビゲーションバーを使わないとテーブルビューが使いづらくなるから諦めるという方も多いのかもしれません。そもそもこのような事象が起こるのはUINavigationControllerの中には便利なメソッドがデフォルトで実装してあるためです。

ということは、このデフォルトのメソッドを外部で適用してやれば、UINavigationControllerを使わなくて良くなるため、邪魔なナビゲーションバーを外すことができるわけです。今回はUINavigationItemをUIButtonに置き換える例を記します。

スクリーンショットは以下。
SCtableEdit      SCtableDone

サンプルコード

【解説】
UINavigationItemを利用する場合は編集ボタンの設定に

などとして設定して、UITableViewのdelegateで細かい設定をしていくと思います。

しかし、今回はどうしてもUIButtonで実装したいので、

とUIButtonにアクションを設定して、そのアクションメソッドの中で

こんな感じで実装します。

myTableView.setEditing(編集モードにするかどうか?, animated:true)

というメソッドを呼んで編集モードを切り替えているわけです。

このように外部でメソッドを呼んであげればNavigationBarをとっぱらうことができるため、より大きく表示できたり、広く使えたりします。