View-Based ApplicationにUINavigationControllerを追加する方法
(いろいろ間違っていたので 2009/05/13 更新)
(さらに 2009/08/08 更新)
これを書いた後に発売された、はじめてのiPhoneプログラミング(デイブ・マーク、ジェフ・ラマーチ、鮎川不二雄訳) の第9章「ナビゲーションコントローラとテーブルビュー」にかなりのページ数を割いてこのあたりの説明が書かれているので、そちらを参照した方がおそらく幸せ。
キャプチャ画像を使って書き直した記事はこちら
(ここからオリジナル記事)
iPhone SDK で、View-Based Application 設定でプロジェクトを開始してアプリを作って、後から設定画面を追加したくなった。
タイトルバーに「設定」ボタンを用意して、そこから設定画面を呼び出すようにしたい。
しかしそういう例がどこを探しても見つからなかったので、試行錯誤してようやくやり方を理解できた。
View-Based Application でプロジェクト作成。
次に、XXXAppDelegate.h の
XXViewController * viewController;
@property …. viewController;
を
UINavigationController *navigationController;
@property (nonatomic, retain) IBOutlet UINavigationController *navigationController;
に変更。
次に、XXXAppDelegate.m の @synthesize viewController; を
@synthesize navigationController;
に変更。
applicationDidFinishLaunching の
[window addSubview:viewController.view];
を
[window addSubview:navigationController.view];
に変更。
[viewController release];
を
[navigationController release];
に変更。一度ファイルの保存のためにビルドしてみる。
次に、MainWindow.xib をダブルクリックして、Interface Builder を開く。
XXXViewController は使わないので、削除する。
Library Window から、Navigation Controller を D&D する。
XXX App Delegate の navigationController から Navigation Controller にリンクを張る。
Xcodeに戻り、ファイル – 新規ファイル – User Interfaces から View XIB を選択して YYYViewController.xib を新規追加。(これが設定画面となる)
さらに、ファイル – 新規ファイル – Cocoa Touch Classes から UIViewController subclass を選択して YYYViewController.m を新規追加。
YYYViewController.xib をダブルクリックして Interface Builderで開く。
File’s Owner の Identity タブの Class Identity にYYYViewController を設定。
View と File’s Owner のもつOutletであるviewをリンクする。
最後に、XXXViewController.m の
viewDidLoad に
self.navigationItem.rightBarButtonItem = [[[UIBarButtonItem alloc]initWithTitle:@”設定” style:UIBarButtonItemStylePlain target:self action:@selector(buttonPressed)]autorelease]; (navigationController上にボタンをのせるため)
-(void) buttonPressed {
[[self navigationController]pushViewController:[[YYYViewController alloc]init] animated:YES];
}
(ボタンが押された際に呼ばれて、UINavigationController に ViewController を pushViewController して設定画面を表示するようにする)
これくらい変更すると、最初に View-Based Application で作り始めたプロジェクトが UINavigationController 対応になっているはず。
ちなみに参考にしたのは下記のエリカ本と、HMDT本。双方参照して試行錯誤してようやく理解することができた。XcodeのコードとInterface Builderの関係がまだいまいち理解できていない。エリカ本ではInterface Builderは使わずほとんどをコードで書き下しているが、そのうち面倒になってInterface Builderを使わなくなったりするのだろうか。
| iPhone デベロッパーズ クックブック | |
![]() |
株式会社クイープ
ソフトバンククリエイティブ 2009-02-12 おすすめ平均 |
| 自作アプリをApp Storeで世界に向けて販売できる!! iPhone SDKプログラミング大全 (MacPeople Books) | |
![]() |
木下 誠
アスキー・メディアワークス 2009-01-07 おすすめ平均 |
関連記事
-
-
Reject 履歴 おんぷちゃん 1.9.1
iOS14からおんぷ先生と接続できない の修正のため、久しぶりにおんぷちゃんを更新したとこ
-
-
EverLearn Ver.1.2.0 が公開されました
EverLearn Ver.1.2.0 が昨日公開されました。 今回は8/28にSubmitして、
-
-
[iPhone SDK] sqlite 学習中。FMDB を知る。
SQLite入門 第2版西沢 直木 翔泳社 2009-05-19売り上げランキング : 17582
-
-
おんぷちゃん 1.9.0 MIDI対応
おんぷちゃん 1.9.0 で MIDI キーボードに対応しました。(まだ App Store にてレ
-
-
[iOS SDK] NSUserDefaults boolForKey でNOが返ってくるとNOが格納されていたのか値が存在しなかったのかが不明
NSUserDefaults Class Reference にあるとおり、NSUserDefau
-
-
iPhone 3G 購入
ついにiPhone 3G 購入。とは言っても自分ではなく奥さん用。 そのうちiPhone 3G 初
-
-
Amazon Web ServicesあらためAmazon Product Advertising APIのObjective-Cでの利用
去年はC#でAmazon Web Serviceを使ったデモアプリを作成していたのだが、今年はiPh
-
-
UIScrollView の上で UIView を動かしたい
今作っているiPadアプリで、画面をピンチインアウトで拡大縮小して、さらにその上でドラッグで部品を動
-
-
[iPhone 開発本] iPhone Advanced Projects がおもしろい
Apressのページはこちら。公開されているサンプルコードは43MBもある。
-
-
Photoshop のバッチ処理でiOSアプリアイコンを一括作成する
毎回苦労しているiOSのアプリアイコン作成。今回はPhotoshopのバッチで作成してみる。前回は
- PREV
- ecto for MacOS X購入
- NEXT
- 基礎からの iPhone SDK


翻訳は?だが、内容はやはりよい
翻訳に落胆
読むだけではダメ