株式会社アスタリスク

製品情報

AsReaderブログ

【Swift tips】汎用的なViewControllerを目指して

カテゴリー:
最終更新日:2018年05月31日

受託開発セクション 林田です。

皆さんはSwift好きですか。
好きだからこの記事を見ていますよね笑

さてここからが本題ですがこんな経験はありますでしょうか
・全画面で共通の処理がある
・全画面で共通のViewがある
・Viewの変更に柔軟に対応したい

こういったものに対応するべく以下のような画面構成にすることで
柔軟に対応できるかと思います。

表示したいViewController
|
NavigationController
|
ContainerViewController
|
RootViewController

①RootViewController
特徴として、どの画面を表示していても、この画面のインスタンスは
破棄されず保持され続けるので、全画面共通での処理などを記載するのに最適です。
(例:自動ログアウトなどの画面遷移ロジック)

②ContainerViewController
これがミソ。もし後から共通のヘッダーなどを追加して欲しいなどの
要望があった場合にここにContainerViewControllerを
追加すれば比較的楽に対応が可能。

③NavigationController
割愛。

④表示したいViewController
表示したいviewをここに表示。

やっていることは単純ですが急な仕様変更などに対処できる選択肢が
増えるかと思います。Apple公式のアプリなどもたくさんContainerが使用されているので
使用しない手はないと思います。皆さんもぜひ。

● Apple、Apple のロゴ、iPhone、iPod touchは、米国および他の国々で登録されたApple Inc.の商標です。
※iPhoneの商標は、アイホン株式会社のライセンスにもとづき使用されています。
※iOS商標は、米国Ciscoのライセンスに基づき使用されています。
● Androidは、Google LLCの商標です。 ● Windowsは米国 Microsoft Corporationの米国およびその他の国における登録商標です。
●その他、各社の会社名、システム名、製品名などは、一般に各社の登録商標または商標です。 
当社サイト内に記載されている社名、製品名、サービス名及びサイト名には、必ずしも商標表示「®」「(TM)」を付記していません。
※iOSデバイスと接続して使用する当社製品は、MFi認証を取得しています。 ※ 形状・色など予告なく変更する場合があります。