Xcode 5 で新規に作ったiOS向けの Single View Application
プロジェクトから Storyboardを削除してAppDelegateクラスとViewControllerクラスの紐付けを行う方法 をメモ。
0. プロジェクトの作成
新規にiOS向けの Single View Application
プロジェクトを作成。
1. Storyboardを削除
Project Navigator(左側のツリー)から Main.storyboard
を削除。(Move to Trash)
2. Info.plist を編集
XXX-Info.plist
(XXXはプロジェクト名)を開いて Main storyboard file base name
の項目を削除。
これで Main.storyboard
への参照が無くなりビルド時のエラーが出なくなります。
3. AppDelegateクラスを編集
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// ここに ViewController を紐付ける記述が必要
return YES;
}
AppDelegete.m
ファイル内の application:didFinishLaunchingWithOptions:
デリゲートメソッドに ViewControllerクラスとの紐付けが無いので、下記の様に編集。
#import <UIKit/UIKit.h>
#import "ViewController.h" // 追加
@interface AppDelegate : UIResponder <UIApplicationDelegate>
@property (strong, nonatomic) UIWindow *window;
@property (strong, nonatomic) ViewController *viewController; // 追加
@end
AppDelegate.h
内でViewControllerクラスのヘッダファイルをインポートしつつ、ViewControllerインスタンスを保持するプロパティを追加。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// ここから
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
self.viewController = [[ViewController alloc] init];
self.window.rootViewController = self.viewController;
[self.window makeKeyAndVisible];
// ここまでを追加
return YES;
}
AppDelegete.m
ファイル内の application:didFinishLaunchingWithOptions:
デリゲートメソッドの中でUIWindowインスタンスを生成して、ルートのビューコントローラにViewContollerインスタンスを割り当ててmakeKeyAndVisibleメソッドで描画。
以上の手順でアプリ起動時にViewControllerインスタンスに自動的に生成された空のビューが表示されるようになります。