0

次のコードを使用して、横向きモードで画面の 1 つを揃えました

    - (BOOL)shouldAutorotateToInterfaceOrientation:     
    (UIInterfaceOrientation)interfaceOrientation
    {
     return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
    }  

5.1 シミュレーター (横向き) では期待どおりに表示されます
が、iPad では縦向きモードで表示されます。提案してください

4

1 に答える 1

0

これは、Filip が言及している問題かもしれません。

しかし、実際のハードウェアで気付いたもう 1 つの問題は、たとえ iOS 6 が関係していなくても、順番が少し違うことです。

独自の回転を​​完全に処理する前にビュー コントローラーからモーダル ビュー コントローラーを使用しようとすると、モーダル ビューコントローラーは縦長モードで表示されます。最初のビュー コントローラーは、イベントが処理されるまで、自身の回転を完全には処理していません。

つまり、ビュー コントローラー ( などviewWillAppear) の初期のイベントからモーダル ビュー コントローラーを提示しようとすると、常に縦長モードで表示されます。

これを修正するには、View Controller をすぐに表示するのではなく、ブロックを使用してメイン ループにスケジュールします。

ビュー コントローラーを呼び出す行を次のように変更します。

[self performSegueWithIdentifier: @"firstRun" sender: self];

に:

dispatch_async(dispatch_get_main_queue(), ^{
    [self performSegueWithIdentifier: @"firstRun" sender: self];
});

別の方法を使用して新しいビュー コントローラーを表示する場合は、同じ方法を試してくださいdispatch_async。メイン キューにラップして、後で実行できるようにします。

于 2012-09-16T18:44:59.127 に答える