UITabBarControllerとUINavigationControllerを同時に使う

標準のミュージックアプリの様な、UITabBarとUINavigationを同時に使う方法をまとめます。

どうやるのか

UINavigationControllerの配列を作り、UITabBarControllerに渡してあげるだけです。

// 各タブのrootとなるViewControllerを指定して
// UINavigationControllerを生成
UINavigationController *navigationController1 = [[UINavigationController alloc] initWithRootViewController:[[TAViewController alloc] init]];
UINavigationController *navigationController2 = [[UINavigationController alloc] initWithRootViewController:[[TASecondViewController] init]];

// navigationControllerの配列を作って、tabBarに渡す
NSArray *tabs = [NSArray navigationController1, navigationController2, nil];
UITabBarController *tabBarController = [[UITabBarController alloc] init];
[tabBarController setViewControllers:tabs animated:NO];
[self.window addSubview:tabBarController.view];    
self.window.rootViewController = tabBarController;

こんな感じになりました。

f:id:w6500:20131219235717p:plain