このページは「iPhoneプログラミング入門」(工学社刊、ISBN 978-4-7775-1541-7)を読んで、もっと先へ進んでみたいと思った人への説明です。

次へ->
<-前へ
--> 「次の一歩」一覧へ

自分で作るナビゲーション2

ZeroNavAppDelegateを編集

ヘッダファイル

ヘッダファイルZeroNavAppDelegate.hを編集して、プロパティnavigationController...いや、名前長いですから、navControllerにしましょう。
実はこれ、簡単です。今のヘッダファイルは「ただのビューコントローラ」仕様の内容になっています。そこで、「ZeroNavViewController」クラスのプロパティviewControllerが作成されています(スミマセン、このへんは本書を参照してください)
これを「UINavigationController」クラスのプロパティ「navController」にすればいいのです。

ゆえに、「ZeronavViewController」を「UINavigationController」に置き換えます。
もひとつ、「viewController」を「navController」に置き換えます。
そして、以下の表記がいらなくなります。
@class ZeroNavViewController;

編集したら、保存します。

実装ファイル

実装ファイルZeroNavAppDelegate.mは、もっと簡単です。「viewController」を「navController」に置き換えるだけです。別にviewControllerという名前のままでもいいのですが、これがナビゲーションコントローラであることをハッキリさせるために名前を変更したのです。
これも保存します。

Navigation Controllerの設定(3/3) MainWindow.xibの最後の仕上げ

Navigation ControllerとZeroNav App Delegate間で連結

「ZeroNavAppDelegate」に導入したプロパティnavControllerと、MainWindow.xibのオブジェクトNavigation Controllerを結びつけます。
ビューコントローラをナビゲーションコントローラと混同しないように選び出すのは結構微妙でしたが、ナビゲーションコントローラのほうを正確に選ぶのは簡単です。ドキュメントウィンドウのほうに、「Navigation Controller」のアイコンがありますからそれを選べばいいのです。右クリックして、コネクションパネルを出します。
「New Referencing Outlet」の連結点から「ZeroNav App Delegate」のアイコンへ、マウス操作でひものようなものを引っ張ります。「File's Owner」のアイコンではないので注意しましょう。MainWindow.xibではオブジェクトの連結先はFile's Owner(アプリケーション本体)ではなく「App Delegate」であるということを、本書では確認だけしました。今回、実際に作業してみたわけです。
連結先のアイコン「ZeroNav App Delegate」に「navController」という選択肢が出たらそれを選択します。これで連結完了です。
ビルド・実行してみましょう。ボタンのひとつある「ZeroNavViewControllerのビュー」が表示され、かつ上部には「Root View Controller」と書いてある灰色のバーが表示されていれば成功です。でも、ボタンをクリックしても何も起こりません。起こらなくて結構、落ちたら大変です。ボタンクリックの動作は、これからZeroNavViewControllerクラスの中で定義するのです。
図7 画面が青色なのは、NIBファイルで背景色を設定してみたからです。灰色でも全く問題ありません。

ZeroNavViewControllerを編集して、ボタンをクリックしたときの動作を記述します