Xcode 4.2/4.3 で iOS (iPhone/iPad) の Tabbed Application に Tab を追加する

Xcode 4.1 から変わっている上に、4.0 のときに近い操作に戻ってしまったらしい(?)。もっとエレガントな方法がありそうな気がするけど発見できなかったので、確実にできた方法をとりあえず書いてみる。

  • 1. iOS の Tabbed Application を選んで Application を作成する。
  • 2. View → Utility から Show Object Library を選んで右下にライブラリのウィンドウを出す。
  • 3. Object Library から View Controller をドラッグして画面の中に置く。置くと、下の画面のように新しいウィンドウが開く。


  • 4. 左側の Tab Bar Controller を右クリックし、そのままドラッグして新しく作ったウィンドウまでひぱってくる。Control + ドラッグでもいけたっけ?
  • 5. ボタンを離すと小さい黒いウィンドウが出るので、ここで Relationship を選ぶ。下の画面を参照のこと。ここまででタブは追加されるんだけど、これだけじゃ新たに追加したタブの中身を描画するコードを書く場所がないので(厳密にいえばそうでもないけど面倒になる)、以下の手順でコードを書くクラスを追加する。


  • 6. File → New File をえらび、UIViewController を選ぶ。


  • 7. ThirdViewController と名前をつけて Create する。(名前はなんでもいいけど)


  • 8. IB の画面から先程つくったウィンドウ (View Controller とかいてあるやつ) を選んで、Identity Inspector でクラス名を ThirdViewController にかえる。これで追加したタブの中身を書くコードを ThirdViewController.m 内に書いてやればよくなる。


  • 9. Tab の名前が "Item" とかになってるのをなおす。左側の Third View Controller - item というところを開いて、Tab bar item - item を選ぶ。それから右の Inspector の Bar Item の Title のところに Third とか入れる(Tab のタイトル)。


  • 10. これで run すればめでたく "Third" という名前のついたタブが追加されてる。描画コードを何もかいてないので、タブを選んでも何も表示されない。

Xcode 4.1 のときは、単純に View Controller を Tab Bar Controller のところにほうりこむだけでできたのに、その方法ではダメになったぽい。4.3 になっても追加方法に変更はなかったぽいので、どうやらこの方法が今後は正式な(?)方法になるぽい。

4 つ目のタブを追加するときも同じ手順でいける。しかし、タブをどんどん追加していくと IB の画面がウィンドウ(というかビュー)だらけになるねこれ。Xcode 4.1 のときは、タブのボタンを押すことで画面がきりかわるようになってたから、こういうふうにはならなかったんだけど。何か、そういうモードに切り替える方法もありそうな気がするものの、そこまで追求する気合がない。

試してはいないけど、多分 UIViewController のサブクラスを xib 付きで作成してやって、そのサブクラスを Tab の childViewController にしてやれば、個別のビューを別の画面で編集できるようになる気がする。