とらぬたぬきの皮算用

普段のなんでもないことも、技術的なことも、趣味のことも書いてしまう雑食です。

Interface Builderとの決別

iPhone向けアプリを作ろうとするとき、InterfaceBuilder(以下、IB)を使わずに作りたいという人も少なくないはず。


一番単純にそれを実現するにはXcodeの作成からwindow-based applicationを選べば言い訳ですが、それだけだと実はwindowのファイルがまだ残ってる。MainWindow.xibってやつ。
このファイルがいる限り、完全にInterfaceBuilderとの決別とはならないようで。。。


では、どうするかというと。。。

  1. MainWindow.xibをプロジェクトから削除
  2. info.plistの項目からMain nib file base nameを削除
  3. main.mを編集

//int retVal = UIApplicationMain(argc, argv, nil, nil );
int retVal = UIApplicationMain(argc, argv, nil, @"hogeAppDelegate");

  1. hogeAppDelegate.mでUIWindowを作る

- (void)applicationDidFinishLaunching:(UIApplication*)application {
// この2行を追加
CGRect frame = [[UIScreen mainScreen] bounds];
window = [[UIWindow alloc] initWithFrame:frame];
}

でOK!
上記の手順を行うことで、MainWindow.xibを読み込まなくなり、かつ起動時にWindowが生成されるようになるんだとさ!
xibファイルを読み込んでいるときよりも、上記手順を踏んだときの方が、起動も若干早くなるとかならないとか。

どちらにしても、UIKitだけでコーディングするなら、消してしまった方がいいかも。