複数の画面を切り替えてみる:よくわかるiPhoneアプリの教科書(CHAPTER9)

前回は、CHAPTER8でWeb関連の情報をアプリに表示する学習をしました。今回は、いよいよ複数画面の切り替えを学習します。この章では、CHAPTER4でチラっと触れたAppDelegateを実際に使うことになります。

■CHAPTER9-1
まず最初に、UtilityApplicationというテンプレートで新規プロジェクトを作れば、そのままRUNするとiOSシミュレーターで画面がひっくり返る様子を確認できることを教わります。こういう感じで、スグに動作を試せるテンプレートはモチベーションが上がりますね!
このテンプレートを使って、@property経由で画面の表裏を行き来する際の変数のやりとりを学びます。このプロセスの説明が丁寧で分かりやすかったのですが、、、。
またもや実習で躓きました。結論から言うと、書籍では自分で書くように書かれているコードの一部が、Xcode4.2のテンプレートでは予め書かれていたのです。
そんなことに気が付かず、何度コンパイルしても「i」ボタンを押すと「Program received signal: “SIGABRT”」と言うエラーが出てしまう。。。このエラーをググってみても、ピンと来る検索結果が出てこない。
で、もう一度冷静に現象を考えたところ、切り替えのキッカケを起動するとエラーが起きるということで、変数の受け渡しが上手くいってないんだろうなと推測しました。で、コードを見直したところ、空のクラスメソッドのコードが書籍のコードと一部ダブっていたところを発見。つまり、予め空のクラスメソッドが用意されていたのに、書籍を丸写ししてたので2重に書いてしまっていたことが分かりました。
これに気付くのに、物凄い時間がかかってしまいました。orz
chapter_9_01 chapter_9_01b
2重に書いていたところを片っ端から消していったところ、無事に書籍どおりの動作をしてくれました。
余談ですが、テンプレートのオリジナルファイルに修正を加えると、ファイル名の横に「M」のマークが付くことに、ここで初めて気が付きました。

■CHAPTER9-2
chapter_9_02a chapter_9_02b
ここでは9-1での落とし穴に気を付けながら、サポートページにかかれた差分を吸収して慎重に進めたところ、珍しくエラーも出ずに1発で書籍どおりの動作をしてくれました(CHAPTER9-2のキャプチャを撮るのを忘れてたので、CHAPTER9-3のボタンが入ってる状態です)。
AppDelegateが複数画面の中継役として働くことを学びます。

■CHAPTER9-3
chapter_9_03b
CHAPTER9-2で作成したプロジェクトを流用して、タブバーのボタンを3つに増やします。
chapter_9_03a
サポートページの通り、手順5と6が大幅に変更になっていたのですが、それよりも手順1と2でSaveAsではなく、Class名で別名保存することに若干躓きました。
まぁ、そこだけ分かれば、この節もすんなりとクリアできました。

いよいよ、次はObjective-Cを使ってアプリを作る最後の章、CHAPTER10です。
「よく分かるiPhoneアプリの教科書」卒業が予定より3週間遅れているので、CHAPTER8~9での躓きを活かし、サクっと終わらせたいと思います。

★★★自作iPhoneアプリをAppStoreでリリースするまでの道のり★★★