0

アプリの起動時に、デバイスがiPhone5かどうかを検出しようとしています。デバイスがiPhoneの場合、ストーリーボードを起動します。それ以外の場合は、別のストーリーボードを起動します。私はdidFinishLaunchingWithOptionsメソッドでこのコードを試しました:

if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone){
    UIStoryboard *storyBoard;

    CGSize result = [[UIScreen mainScreen] bounds].size;
    CGFloat scale = [UIScreen mainScreen].scale;
    result = CGSizeMake(result.width * scale, result.height * scale);

    if(result.height == 1136){
        storyBoard = [UIStoryboard storyboardWithName:@"MainStoryboard_iPhone_5" bundle:nil];
        UIViewController *initViewController = [storyBoard instantiateInitialViewController];
        [self.window setRootViewController:initViewController];
    }
}

動作しているように見えますが、アプリを起動すると黒い画面しか表示されません。ストーリーボードに問題があると思います(各ストーリーボードは2つのビューを持つ2つのビューコントローラーとして)。2つのビューのうちの1つを「初期ビューコントローラー」として使用していますが、正しいビューがないbaclk画面が常に表示されます。

誰かがこの問題を抱えていましたか?

4

1 に答える 1

0

あなたのコードは正しく見えます。起動時に黒い画面が表示されるのは、UIViewController内のビューを誤って削除したときだけです...これが役立つかどうかはわかりません。すべての参照が正しいことを確認してください。クラスやメソッドなどの名前を削除、名前変更、またはその他の方法で変更した場合も、問題が発生する可能性があります。

于 2012-11-09T20:29:39.547 に答える