2

したがって、私たちは横向きの向きのみをサポートするiPad Appをビルドします。これはplistのSupported interface orientations (iPad)Landscape (left/right home button)に設定することによって強制されます。また、すべてのUIViewControllersは、次のようにshouldAutorotateToInterfaceOrientation:を実装している:これは正常に動作し、アプリケーションが横向きでロックされているMPMoviePlayerControllerは、フルスクリーンモードの後に​​アプリケーションを不正な向きにします

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

。今私たちの意見の1つに埋め込まれたMPMoviePlayerControllerがあります。ユーザーがこの映画でフルスクリーンになると、彼は肖像画に回転することができます。ムービープレイヤーはすべての風景設定をバイパスしているようです。それは私にとっては大丈夫ですが、ユーザーがdoneボタンをタップしても縦向きの場合、私たちのUIViewControllersもすべて肖像画に見えてひどく見えます!

ユーザーはiPadを回転させて自分自身を景色にして、再び見栄えを良くしてから、意図したとおりに元に戻すことができなくなります。

shouldAutorotateToInterfaceOrientationがiOSにポートレートに回転しないように指示しても、私のビューがポートレートに回転されるのはなぜですか?ムービープレイヤーが自分の意見を回転させないようにするにはどうすればよいですか?

ソリューションでもムービープレイヤー自体がランドスケープでロックされている場合は、それは問題ありません。私の意見が回転しない限り、私は幸せです! :)

+0

MPMoviePlayerControllerをサブクラス化し、shouldAutorotateToInterfaceOrientationをオーバーライドしてみましたか?他のビューコントローラと一致するようにしましたか? –

+0

'MPMoviePlayerController'クラスで呼び出される' shouldAutorotateToInterfaceOrientation: 'はありません。 'MPMoviePlayerViewController'には1つのみがありますが、それを上書きするのは助けになりません。ムービープレイヤーを強制的に横向きにすることはできないようです。 –

+0

私はMPMovePlayerViewControllerを意味しました。私の指はメッセージを受け取っていませんでした。 MPMoviePlayerViewControllerはUIViewControllerから継承し、UIViewControllerにはshouldAutorotateToInterfaceOrientation:メソッドがあります。これはMPMoviePlayerViewControllerのサブクラスでオーバーライドできるはずです。私はそれを試す時間がありませんが、それは試してみる価値があると思います。 –

答えて

5

なぜshouldAutorotateToInterfaceOrientationがiOSにポートレートに回転しないように指示しても、私のビューがポートレートに回転されるのはなぜですか?ムービープレイヤーが自分の意見を回転させないようにするにはどうすればよいですか?

ソリューションでもムービープレイヤー自体がランドスケープでロックされている場合は、それは問題ありません。私の見解が回転していない限り、それは私と一緒にいいです! :)

このビュー階層使用しているとき、私はこの正確な問題を抱えていた:

 +------------------------+ +-------------------+ 
     |      | |     | 
     | UINavigationController +->| Some Intermediate | 
     |      | | View Controllers | 
     +------------------------+ |     | 
            +---------------+---+ 
                | 
                v 
              +--------------------------+ 
              | MPMoviePlayerController | 
              |  (embed)   | 
              +--------------------------+ 

をアプリケーションがMPMoviePlayerController場合を除き、ポートレートになることができませんでしたので、中間ビューコントローラのすべてが横向きにロックされていましたフルスクリーンで表示されていた(OPとまったく同じ問題につながる)。

解決策は、shouldAutorotateToInterfaceOrientationを上書きするサブクラスを作成して、UINavigationControllerを横向きにロックすることでした。この方法では、MPMoviePlayerControllerはPortraitの向きに回転しなくなりました。私はフルスクリーンに入ると思うが、それは私の場合はUINavigationController(またはむしろ私のサブクラス)であるmainWindowのrootViewControllerに自身を追加する。

希望すると便利です。

+0

おかげでTaum.itは本当にme.great solution bro。 :) – Subrat

関連する問題