LoginSignup
2

More than 5 years have passed since last update.

汎用的なViewControllerを目指して

Last updated at Posted at 2018-07-04

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

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

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

画面構成

d86d315a234d192023864e2af7dca168.png

RootViewController

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

ContainerViewController

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

NavigationController

割愛。

表示したいViewController

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

まとめ

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

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2