ContainerViewController について
iOS5 から追加されたこのContainerViewController
私はこいつの存在を知らずにアプリ開発を行い泣きを見ました。
今振り返ればこのContainerViewController を使っていればいかに楽に実装できたことかと。。
さて、ContainerViewController の要点は以下の通り。
・複数のViewController を管理
・子となるViewController が持つViewの描画領域や描画タイミングを決定する
ContainerViewController が出てくるまでは複数のViewを管理し、切り替えるようなアプリの作成は困難でした。
なぜなら、View のアピアランス、回転に関する下記のメソッドを親から子へ伝搬する仕組みを自前で用意する必要があったからです。
【アピアランスに関するメソッド】
・viewWillAppear:
・viewDidAppear:
・viewWillDisappear:
・viewDidDisappear:
【回転に関するメソッド】
・willRotateToInterfaceOrientation:duration:
・willAnimateRotationToInterfaceOrientation:duration:
・didRotateFromInterfaceOrientation:
各ViewControllerでは、描画のタイミングや、回転のタイミングで必要な処理を実装することが多いと思います。
ContainerViewController を使用しない場合、呼ばれてほしいタイミングで viewWillAppearが呼ばれず、意図通りの挙動をしてくれない! などということが起こり得るわけです。
そこでこのContainerViewController を用いれば、これらのメソッドを的確に伝搬してくれます。
便利ですねー。
使い方についてはまた次回。
ほな