Story BoardなしでTabBarとNavigationBarを組み合わせたアプリを作る方法

NewImage photo credit: ak_tokyo via photopin cc

こんばんは、ボーノです。

Interface BuilderもStory Boardも使わないiPhoneアプリの作成が少しずつ慣れてきた。 「これ何で必要?」みたいなコードもまだたくさん ありますけど。

ちなみに今回はTabBarとNavigationBarを組み合わせたアプリを作りたかった。

ググってみると、NavigationBarとかTabBarとかをコードだけで実装したサイトはたくさんあったが、これらを組み合わせて実装したものはほとんど見つからなかった。

今後のために残しておく。

TabBarとNavigationBarを組み合わせたアプリの作成方法

用意したクラス

下記の6個を用意。

  • AppDelegate:全体管理
  • MainViewController:タブ画面Main
  • SubViewController:タブ画面Sub
  • SetViewController:ナビゲーション画面Top
  • Item1ViewController:ナビゲーション画面階層1
  • Item2ViewController:ナビゲーション画面階層2

ツリー状にするとこんな感じ。

140113 2

完成イメージ

タブ画面Main

スクリーンショット 2014 01 13 18 00 37

タブ画面Sub ( = ナビゲーション画面Top)

スクリーンショット 2014 01 13 18 01 04

ナビゲーション画面階層1

スクリーンショット 2014 01 13 18 01 10

ナビゲーション画面階層2

スクリーンショット 2014 01 13 18 01 13

実現するためのコード

下記コードをテンプレートとして自由に使って下さい。
ちなみに、Xcode5.0とiOS7の組み合わせでは動作確認済み。

AppDelegate.h

AppDelegate.m

MainViewController.h

MainViewController.m

SubViewController.h

SubViewController.m

SetViewController.h

SetViewController.m

Item1ViewController.h

Item1ViewControllerとItem2ViewController2は同様なので代表として1を記載。

Item1ViewController.m

これで完了

画面遷移はiPhoneアプリの作成において最初のハードルだと思う。

自分もかなり苦労していたが、だいぶ思い通りに動かせるようになってきた。

下記本は中級者向けではあるけど、画面遷移とかViewControllerの理解を深めるのにとても役に立った。
2010年発行ということで少しコードは古いけど、これらの原理を根本から説明した、恐らく現時点においても唯一無二の本だと思う。
十分に現在でも通用する内容です。