さて、先週のまとめです。
プログラムの方は、前回から引き続き画面遷移の理解。今度は実際に設計書通りにアプリの画面を作って画面を繋げてみました。
テンプレートはNavigation-based Application。画面遷移はpushViewController:animated:メソッド(次の画面へ進む)とpopViewControllerAnimated:メソッド(前の画面へ戻る)を使います。基本はこれだけ。ちゃんと理解できれば意外とシンプルなんですね。
スプラッシュ画面の作成もすごく簡単。表示したい画面をPNGファイルとして作成し、プロジェクト内にdefault.pngとして登録するだけ。(ちなみにiPhone4/4Sだとdefault@2X.pngとして登録する必要あり。)
細かいところはまだだけど、だいたい画面が動くようになったので、今度はXcodeのバージョンアップ。iOS4.3ベースのXcode4.1からiOS5ベースのXcode4.2にバージョンアップしました。
Xcode4.1で作成したプロト版が動くことが確認できたら、今度はStoryboardを使ったプロトを最初から作成。最初は何のことかわからなかったStoryboardもようやく意味がわかってきました(^^;。Storyboardでは(今までと同様に)画面を作成、その後Controlキー+ドラッグで画面と画面を矢印で結びます。(これだけでpushViewController:animated:メソッドとpopViewControllerAnimated:メソッドを記述したのと同様の動きなります。)あとは、画面管理用のクラスファイル(UIViewController/UITableViewController)を新規に作成し、Storyboardで作成した画面にクラスファイルを関連付けしてやればOKで、今まで定義していたxibファイルは一切不要になりました。
確かに画面や画面遷移をコードと切り離して考えられるのはすごく便利です!・・・ただ、画面上で「戻る」ボタンを非表示にしたり、「完了」ボタンで元の画面に戻る・・・というのをStoryboard上でどうやるかがわからないので、結局画面クラスの方でコード書いたりしている状態です。この辺の処理までStoryboardで書けたら便利なのになぁ(^^;。
ちなみに画面を操作するコードは、「iPhoneプログラミングUIKit詳解リファレンス」を参考にしながら書いています。iOS3ベースと古い本だけど、画面に関する基本がばっちり解説してある(しかも基本はiOS5でも全く一緒。)のですごく重宝しています。これからiPhoneアプリを開発しようと思っている方は是非手に取っていただきたい1冊です。
・・・ようやくここまで辿り着きましたが、改めて考えるとやっぱり大変ですよね。画面(UIView/UIViewController)の仕組みからStoryboardの使い方までを網羅した入門書が1冊あれば事足りるのに(^^;。だけどそんな入門書が出る頃には、またXcodeがバージョンアップしてまた使い方が変わったりしちゃうんですよね。Appleの1年に1度の製品(またはOS)のバージョンアップは、ユーザー視点から見ればすごく魅力的なんですけど、開発者視点から見ればすごく悩ましい問題ですよね(^^;。