【Swift tips】汎用的なViewControllerを目指して
受託開発セクション 林田です。
皆さんはSwift好きですか。
好きだからこの記事を見ていますよね笑
さてここからが本題ですがこんな経験はありますでしょうか
・全画面で共通の処理がある
・全画面で共通のViewがある
・Viewの変更に柔軟に対応したい
こういったものに対応するべく以下のような画面構成にすることで
柔軟に対応できるかと思います。
表示したいViewController
|
NavigationController
|
ContainerViewController
|
RootViewController
①RootViewController
特徴として、どの画面を表示していても、この画面のインスタンスは
破棄されず保持され続けるので、全画面共通での処理などを記載するのに最適です。
(例:自動ログアウトなどの画面遷移ロジック)
②ContainerViewController
これがミソ。もし後から共通のヘッダーなどを追加して欲しいなどの
要望があった場合にここにContainerViewControllerを
追加すれば比較的楽に対応が可能。
③NavigationController
割愛。
④表示したいViewController
表示したいviewをここに表示。
やっていることは単純ですが急な仕様変更などに対処できる選択肢が
増えるかと思います。Apple公式のアプリなどもたくさんContainerが使用されているので
使用しない手はないと思います。皆さんもぜひ。