開発

【swift】ちょい足しレシピ②!UIViewController達を制御するUIViewControllerさんを作ってみる+UINavigationControllerの様な遷移アニメーション付き

毎度どうもこんにちは。iOSをメインに開発しているロッキーカナイです。

今回のちょい足しレシピは、複数のUIViewControllerを制御するUIViewControllerのお話です。

XCode9 / Swift4

実際にiOSの開発時に、
①アプリ画面の大部分で同じ様なナビゲーションバーを使用する
②各画面でナビゲーションバーのボタンの有無を変更する必要がある
③ナビゲーションバーのボタン制御を管理するクラスで統一したい

という点があり、題名にある通り、UIViewController達を制御するUIViewControllerを使用することで対応しました。
どういうものかと言うと、制御するUIViewController(次から親と言います)がNavigationBarを持っており、このNavigationBar上のボタンを選択すると親が現在表示しているUIViewController(次から子と言います)の状態を判断して切り替え等の動作を制御します。
よって、親が子を制御する構造になります。

このメリットとしては、
①ロジックは親のUIViewControllerが持つので管理し易く分かり易い
②子はUIViewControllerなのでstoryboardに追加できレイアウトが容易
が挙げられます。

親 ViewController
子 ViewControllerA / ViewControllerB
storyboardの記載は割愛します。

UINavigationViewControllerの様にアニメーションも可能ですので、複数の画面を制御する様にしたい場合には使えるかと思います。
以上、「ちょい足しレシピシリーズ UIViewController達を制御するUIViewController」でした!

ABOUT ME
ロッキーカナイ
ロッキーカナイ
iOSをメインに、SwiftやObjective-C言語の開発をしてます。趣味は猫と戯れる事、PHPを使ったサイト作成やAndroidの開発もしております。ちなみに名前のロッキーカナイはよく昼飯を食べる所w