Takahiro Octopress Blog

-1から始める情弱プログラミング

tabBarControllerとUINavigationControllerを同時に使いたい!

tabBarControllerとUINavigationControllerを両立させよう!

本日はtabBarControllerとUINavigationControllerを両方使いたい場合の方法を説明します。
方法は簡単です。

tabBarControllerを先に追加して、
その子要素にUINavigationControllerを追加してください。

具体的に図で説明します。

1.storyboardでtabBarControllerを追加
XcodeメニューのEditor > Embed in > Tab Bar Controller を選択してください。
tabBarControllerの追加

すると、下図のようにstoryboardにTab Bar Controllerが追加されます。
storyboardに表示されます

このままでは、tabBarにitem(項目)が1つしかないので、ViewControllerを追加しましょう。

2.ドラッグ&ドロップでstoryboardにUIViewControllerを追加
右メニューから View Controller をドラッグ&ドロップしましょう。
View Controllerをドラッグ&ドロップ

3.tabBarControllerと追加したUIViewControllerを紐付ける
Tab Bar Controller上でcontrolキーを押しながら、追加したView Controllerの方へ線を伸ばして紐付けます。
Tab Bar ControllerとView Controllerのひも付け

これにより、Tab Bar Controllerに1つ項目が増えて、View Controllerまでひも付けが伸びていることを確認できます。
項目の追加完了

続いて、UINavigationControllerを追加していきましょう。

4.子要素のView ControllerにUINavigationControllerを追加
UINavigationControllerを追加したいView Controllerを選択して、
XcodeメニューのEditor > Embed in > Navigation Controller を選択してください。
UINavigationControllerの追加

結果、Tab Bar ControllerとView Controllerの間にNavigation Controllerが追加されたことがわかると思います。
Navigation Controllerが追加されました

別の子要素のView ControllerにもNavigation Controllerが必要な場合は、
そのView Controllerに対して同じ操作を繰り返し実施してください。

storyboard上ではUINavigationControllerを先に追加して、
tabBarControllerを追加することもできます。
ですが、UINavigationControllerの戻るボタンの非表示やカスタム化などをしようとすると、
どうもうまくいきません…。
なので、一見無駄に見えるかもしれませんが、この方法を試してみることをオススメします。

本日はここまで。

Comments