背景
よくプログラムを書くときは、MVCモデルが使われます。
一方で、Modelをどう伝搬させていくか、あるいは、Modelへのリンキングをどうするかが
いつも悩みの種になります。
特にstoryboardを使用してTabViewを使用するなんて場合は、
複数のViewControllerがあるため何かと悩みの種になります。
今回は、TabViewをstoryboard上で使用する場合、どうModelオブジェクトを取得するかに
焦点を当てて、一つの解を示します。
一つの解決策
UITabBarControllerをカスタマイズして、Modelを持たせるだけ
これが一つの解です。
解決策の理由
UIViewControllerには、プロパティとして、
tabBarController
というプロパティがあるのです。
つまり、タブ一つ一つに割り当てられるUIViewControllerではこれを使用して、
//get parent tabbar controller
var parent: CustomTabBarController = self.tabBarController as! CustomTabBarController
//get model from parent
var model: Model = parent.model
という風に記載すれば、Modelオブジェクトを取得出来るようになるわけです。
エンディング
いかがでしたでしょうか。
これは応用すれば、xibでも出来るかと思います。
これで、タブを使用する場合のModelの伝搬をどうするかについて悩まなくても良くなると
思います!!!
それではまた〜(^^)/