nibファイルを使わないテンプレートを作る(2)View-Based Application

(前の記事:nibファイルを使わないテンプレートを作る(1)Window-Based Application

今回は、iPhone用のView-Based Application をカスタマイズします。

テンプレート View-Based Application をコピーする

/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Project Templates/Application

にある View-Based Application フォルダを

~/Library/Application Support/Developer/Shared/Xcode/Project Templates/Application/

にコピー。
フォルダ名を My View-Based Application に変更します。

main.m を編集する

以下の1行を編集します。

変更前
int retVal = UIApplicationMain(argc, argv, nil, nil);
変更後
int retVal = UIApplicationMain(argc, argv, nil, @"___PROJECTNAMEASIDENTIFIER___AppDelegate");

MainWindow.xib を削除する

削除しちゃいます。

Info.plist を編集する

Main nib file base name を削除します

___PROJECTNAMEASIDENTIFIER___AppDelegate.m を編集する

applicationDidFinishLaunching:メソッドを編集します。

変更前
- (void)applicationDidFinishLaunching:(UIApplication *)application {    

    // Override point for customization after application launch
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];
}
変更後
- (void)applicationDidFinishLaunching:(UIApplication *)application {
    UIWindow *w = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
    self.window = w;
    self.viewController = [[___PROJECTNAMEASIDENTIFIER___ViewController alloc] initWithNibName:nil bundle:nil];
    [window addSubview:viewController.view];
    [window makeKeyAndVisible];
    [w release];
}

___PROJECTNAMEASIDENTIFIER___ViewController.xib を削除する

削除しちゃいます。

___PROJECTNAMEASIDENTIFIER___ViewController.m を編集する

loadView メソッドを以下のように実装します。

- (void)loadView {
    UIView *contentView = [[UIView alloc] initWithFrame: [[UIScreen mainScreen] applicationFrame]];
    contentView.backgroundColor = [UIColor whiteColor];
    self.view = contentView;
    [contentView release];
}

完成

次はTab Bar Applicationをカスタマイズする予定。