76
Help us understand the problem. What are the problem?

More than 5 years have passed since last update.

posted at

Xcode5でStoryboardを削除する手順

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クラスを編集

AppDelegate.m
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // ここに ViewController を紐付ける記述が必要
    return YES;
}

AppDelegete.m ファイル内の application:didFinishLaunchingWithOptions: デリゲートメソッドに ViewControllerクラスとの紐付けが無いので、下記の様に編集。


AppDelegate.h
#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インスタンスを保持するプロパティを追加。


AppDelegate.m
- (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インスタンスに自動的に生成された空のビューが表示されるようになります。

Register as a new user and use Qiita more conveniently

  1. You can follow users and tags
  2. you can stock useful information
  3. You can make editorial suggestions for articles
What you can do with signing up
76
Help us understand the problem. What are the problem?