0

iPhone5、iPhone4 (およびそれ以前)、および iPad の画面をサポートする複数のストーリーボードを含むアプリを作成したいと考えています。

私は次のことをしました:

  1. 各設定に 1 つずつ、合計 3 つのストーリーボードを作成しました。
  2. プロジェクト インターフェイスの「メイン ストーリーボード」フィールドをクリアしました。
  3. アプリの info.plist ファイルの「メイン ストーリーボード ファイルのベース名」フィールドをクリアしました。
  4. AppDelegate の "didFinishLaunchingWithOptions" メソッドに次のコードを入力しました。

    - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {        
    
        UIStoryboard* appStoryboard = nil;
    
        if (UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone) 
        {
            if (IS_IPHONE_5) //a macro capturing the screen size
            {
                appStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone5" bundle:nil];
            }
            else 
            {
                appStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone4" bundle:nil];
            }
        }
        else if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPad) 
        {
            appStoryboard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPad" bundle:nil];
        }
        UIViewController* viewController = [appStoryboard instantiateInitialViewController];
        [self.window setRootViewController:viewController];
        [self.window makeKeyAndVisible];
        return YES;
    }
    

アプリケーションは実行されていてクラッシュしていませんが、黒い画面が表示されます。

私は何が欠けていますか/間違っていますか?

4

1 に答える 1

1

を初期化していませんwindow

追加するだけ

self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

于 2013-09-24T10:05:45.813 に答える