[iPhoneアプリ]TabBarControllerでタブに設定されているViewContllerを入れ替える
iPhoneアプリで「TabBarController」で実装していると、特定のタブの表示をごっそり入れ替えたい場合がある。
この時、タブに設定されているViewContller毎、入れ替えてしまう方法
NSMutableArray *tabs = [NSMutableArray arrayWithArray:self.tabBarController.viewControllers]; SubTabViewController *controller = [self.storyboard instantiateViewControllerWithIdentifier:@"SubTabViewController"]; UIViewController *tmpController = [tabs objectAtIndex:1]; controller.tabBarItem = tmpController.tabBarItem; [tabs replaceObjectAtIndex:1 withObject:controller]; [self.tabBarController setViewControllers:tabs animated:NO];
- 2行目で入れ替えたいViewContllerのインスタンスを生成
- 3-4行目で、tabBarItemを設定
- 5行目でタブの入れ替え(今回は2つめのタブを入れ替えたのでIndexは「1」を指定)
これで、見事ViewControllerが入れ替わって下に表示されているタブは、そのまま使用されます。