xcode4.2でStorybordを使わずにtabBarControllerにnavigationControllerを追加する方法
タブバーコントローラーとナビゲーションコントローラを組み合わせた実装は
xcode4.2だとストーリーボードで楽に出来ますが、iOS5未満の対応等で使えない状況があると思います。
ちなみに3.xと4.0の実装方法はこちらが参考になります。
- Xcode3.x
- Xcode4.0
以下、xcode4.2でStorybordを使わずにtabBarControllerとnavigationControllerを同時に使う方法です。
- 新規プロジェクトからTabbed Applicationを選択しUse Storybordのチェックを外して作成。
- AppDelegate.mのdidFinishLaunchingWithOptionsを以下のようセに修正
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { // メインウィンドウ self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; // ViewControllersを入れる配列 NSMutableArray *viewControllers = [[NSMutableArray alloc] init]; // トップのビュー FirstViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil]; // ナビゲーションコントローラーを追加 UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:viewController1]; [viewControllers addObject:navController]; // メニューのビュー SecondViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil]; // ナビゲーションコントローラーを追加 UINavigationController *navController2 = [[UINavigationController alloc] initWithRootViewController:viewController2]; [viewControllers addObject:navController2]; // タブバーコントローラーを作成 self.tabBarController = [[UITabBarController alloc] init]; // タブバーコントローラーにナビゲーション付きのビューを追加 [self.tabBarController setViewControllers:viewControllers]; // 表示 self.window.rootViewController = self.tabBarController; [self.window makeKeyAndVisible]; return YES; }
以上で完成。
これで遷移にナビゲーションも使えます。