任意にタブバー内の指定のタブに移動する方法

ボタンタップ時などの任意の処理でタブバーの表示タブを切り替える方法です。

TabBarControllerに対して、以下のように複数のTabBarが設定されている状態とします。



TabBar内のViewControllerからUITabBarControllerにアクセスできるので、
UITabBarControllerの選択状態を設定できます。


まずはインデックスを設定する方法。
TabBarのインデックスは左のタブから0, 1, 2...と設定されているので、
一番左を表示したい場合は0を設定します。
上のイメージだとCurrentタブ切り替わります。


・選択インデックスを設定して表示切替

//0 = 一番左のTabBarを設定
self.tabBarController.selectedIndex = 0;


他にも、あまり使う頻度はないかもしれませんが、
子ViewControllerでNavigationControllerのrightBarButtonItemの処理を実装している場合、
実装されている子ViewControllerのタブに切り替えるには以下のようにします。


・選択ViewControllerを設定して表示切替

//実装されているViewControllerを設定(ViewControllerのViewを表示)
self.tabBarController.selectedViewController = self;


処理がListタブのViewControllerに実装されていれば、他のタブを表示していても
Listタブに切り替わります。