obective-c(iPhone)にて、UITabBar毎にUINavigationBarのページをコードで用意する。

最近iphoneアプリの開発をメインでやっており、色々調べながらやっているのですが、
どれもインターフェースビルダーや、ストーリーボードを使った説明が多く個人的にはやりずらい印象をもっております。

と言う事で、色々探した結果、コードでUITabbarUINavigationBarを共存させる方法が見つからなかったので、自力でとりあえず動いた方法を下記にメモします。
余力があればgithubにあげたいと思います。

AppDelegate.m

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{

    _window= [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    _tabBarController = [[UITabBarController alloc] init];  //tabbarコントローラ初期化

    // TabBarControllerに加える3つのViewController
    UIViewController *firstViewController = [[FirstViewController alloc] init];
    UIViewController *secondViewController = [[SecondViewController alloc] init];
    UIViewController *thirdViewController = [[ThirdViewController alloc] init];

    //first用UINavigationController のルート画面 
    UINavigationController *naviFirstViewController = [[UINavigationController alloc] initWithRootViewController:scanViewController];

    //UINavigationController のルート画面 
    UINavigationController *naviSecondListController = [[UINavigationController alloc] initWithRootViewController:secondViewController];

    // tab bar controller の初期化
    self.tabBarController.viewControllers =[NSArray arrayWithObjects:naviFirstViewController, naviSecondListController, thirdViewController, nil];

    [self.window addSubview:self.tabBarController.view];
    [self.window makeKeyAndVisible];

    return YES;
}

上記は、左から2つ目までのタブはそれぞれ、ナビゲーションバーをもっていて、それを最後にタブバーにセットしています。

やっぱりコードで書いた方が、何をやっているかしっくりくるし、
IBXibもあわせてみる必要がなく大変扱いやすいです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください