Interface Builderとの決別
iPhone向けアプリを作ろうとするとき、InterfaceBuilder(以下、IB)を使わずに作りたいという人も少なくないはず。
一番単純にそれを実現するにはXcodeの作成からwindow-based applicationを選べば言い訳ですが、それだけだと実はwindowのファイルがまだ残ってる。MainWindow.xibってやつ。
このファイルがいる限り、完全にInterfaceBuilderとの決別とはならないようで。。。
では、どうするかというと。。。
- MainWindow.xibをプロジェクトから削除
- info.plistの項目からMain nib file base nameを削除
- main.mを編集
//int retVal = UIApplicationMain(argc, argv, nil, nil );
int retVal = UIApplicationMain(argc, argv, nil, @"hogeAppDelegate");
- hogeAppDelegate.mでUIWindowを作る
- (void)applicationDidFinishLaunching:(UIApplication*)application {
// この2行を追加
CGRect frame = [[UIScreen mainScreen] bounds];
window = [[UIWindow alloc] initWithFrame:frame];
}
でOK!
上記の手順を行うことで、MainWindow.xibを読み込まなくなり、かつ起動時にWindowが生成されるようになるんだとさ!
xibファイルを読み込んでいるときよりも、上記手順を踏んだときの方が、起動も若干早くなるとかならないとか。
どちらにしても、UIKitだけでコーディングするなら、消してしまった方がいいかも。