yashigani?.days

週刊少年ジャンプについてだらだら書きます

InterfaceBuilderを捨てるときにすることのまとめ

とてもすばらしいiPhoneのプログラムを書こうと思うと,Xcode に InterfaceBuilder とかいうわけわからんホームページビルダーみたいなのを使うことを強制されて非常にやりにくい
ここにいい感じにまとめてあったけど,なんかはまったので InterfaceBuilder を使わないときにすることをまとめておく
簡単な手順としては,

  • .plist を書き換える
  • MainWindow.xib を削除
  • main.m を書き換える
  • appnameAppDelegate を書き換える

の順にすればおk


まずは,.plist の書き換え
.plist には「Main nib file base name」という項目があるのでそれを削除しちゃう
.plist はこれで終わり
そのまま Resources 以下の MainWindow.xib を削除


次に,main.m の変更
デフォだと MainWindow.xib を探しにいっちゃうので変更する

/* この行を */
int retVal = UIApplicationMain(argc, argv, nil, nil);
/* こんな風に変更 */
int retVal = UIApplicationMain(argc, argv, nil, @"appnameAppDelegate");


最後に appnameAppDelegate の変更
まずは,@interface
Outletは必要なくなったのでUIWindow に関しても設定を変える

/* これを */
@interface appnameAppDelegate : NSObject<UIApplicationDelegate> {
    IBOutlet UIWindow *window;
}
@property(nonatmic, retain) UIWindow *window;

/* こう変える */
@interface appnameAppDelegate : NSObject<UIApplicationDelegate> {
    UIWindow *window;
}

次に,@implements
@synthesize window の削除
そして,window の生成

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

    [window makeKeyAndVisible];
}

window を生成しないと,UI がまったく作れないことに注意
当たり前やけど
念のためにこの段階でビルドできるか確認しておいてね!
これで InterfaceBuilder なしで iPhone アプリが作れるぞ!
ヤッター!