無能プログラマの開発日誌

無能からの脱却をはかるため、畑を耕すように自分を開拓しようと考えたプログラマの開発メモ

InterfaceBuilderを使わずiPhoneアプリを開発したものを元にもどす

InterfaceBuilderを使わずiPhoneアプリを開発したものを、メイン画面や設定画面はやっぱ、InterfaceBuilder使いたいなーと思って、いったん、削除したnibファイルを元に戻す作業をやってみましたのでメモ。

1.「Resources」にMainWindow.xibを追加
新規ファイル作成を選び 「User Interface」− 「Application XIB」を選択する。
名前は 「MainWindow.xib」 とする。

2.アプリの起動時に nib ファイルを読み込むように、 plist ファイルのエントリを追加
 (1) *****-Info.plist (***** は作成したプロジェクト名)をダブルクリックで開く
 (2) セレクトボックスで「Main nib file base name」という項目を選択し、「MainWindow」と入力

3.デフォルトでは、フレームワークは nib ファイルから適切な Delegate クラスを取得しているため、その nib ファイルを追加したので、起動時に Delegate クラスを明示的に指定する必要がなくなった。
 (1) main.m の UIApplicationMain() の呼び出しを、以下のように書き換える

int retVal = UIApplicationMain(argc, argv, nil, nil);

4.Delegate クラスの @property, @synthesize を追加
 (1) Classes/appnameAppDelegate.h の以下の行と

UIWindow *window;
@property (nonatomic, retain) IBOutlet UIWindow *window;

 (2) Classes/*****AppDelegate.m の以下の行を追加

@synthesize window;


5.MainWindow.xib をダブルクリック

6.*****AppDelegate を選択し、identityのclassで「*****AppDelegate」を選択


7.*****AppDelegateのoutletのwindowsをwindowsと紐づける

8.applicationDidFinishLaunchingメソッドに、以下の行を追加

[window makeKeyAndVisible];


あとは、「画面遷移を起こすボタン追加」して、もともと、「applicationDidFinishLaunching」で記述してた処理(ビューの初期化など)を、ボタンのアクションへ移したりなどしてください。