ストップウォッチアプリ01 〜タブバーアプリケーションの罠?

http://d.hatena.ne.jp/moto_maka/20081210/122885502
を見て、タイマー制御の勉強と考えてストップウォッチを作ってみることにしました。

タブバーを使ってストップウォッチと時計を切り替えられるようにしていたため、ページの手順に従わずに先にタブバーの土台を作りました。

すると、なぜかAssistantEditorとパーツの結びつけができなくなりました。

具体的には、「タブバーを先に組み込んでいると、AssistantEditorでViewに応じたViewController.hが開かない」という状況です。

下記問題発生するまでの自分の手順をメモしたものです。

ストップウォッチと時計をタブバーで切り替えるための準備(土台づくり)

  • 新規プロジェクト -> Single View Application
  • Storyboardを開く
  • Editor -> Embed In -> Tab Bar Controller
  • ViewControllerを追加
  • Tab Bar ControllerからドラッグしてRelationship〜で結びつける

★ここまでで、タブでViewを切り替えるところまで完成

ストップウォッチをつくる

  • Start, Stop, Clearボタンと、時間を表示するLabelを置く
  • AssistantEditorからヘッダファイルと結びつけ
    • ボタンはActionに、ラベルはOutletに。

問題発生

タブコントロールと結びつけたviewのパーツをAssistantEditorで結び付けられない。
タブコントロールを設定するとヘッダファイルが肥大化して、どこにドラッグすれば適切に結び付けられるかがわからなくなる。
先に単一の画面を作ってコードと結びつけたあとで、タブコントロールを設定したほうがいいのかもしれない。

プロジェクトを最初から作って比べてみることにする。

やっぱり、最初にTabControlを作ってからボタンを載せてヘッダと結びつけようとすると、結び付けられない。
より正確にいえば、適切なAssistantEditorが開かない。TabBarController.hみたいなのが開く。
そして、ViewController.hを開いても結び付けられない。
どうしたらいいんだろう。。。

対応

タブバーをEmbed in(=組み込む)するのは、ひと通り処理などを書き終わったあとに行うことで暫定的に対応します。

複数ViewをつくってもViewController.hがひとつだったり、タブバーを組み込んだ場合はUITabBarController.hというProjectNavigatorには表示されていないヘッダファイルがAssistantEditorに表示されたり。

少しは慣れたと思っていましたが、やはり先は長いです。。。