0

iOS6の自動回転の混乱を処理しようとしています。

私はそれに関連するSOの質問をほぼすべて見てきましたが、何を試しても、必要な方法でローテーションを機能させることができません。

アプリはストーリーボードを使用しており、レイアウトは次のとおりです。

Navigation controller ---> Root view controller ---> Tab view controller ---> View controller ---> Landscape view controller.

ビュー コントローラーは、シミュレーターを回転させると自動回転しますが、前のビュー (ポートレートに設定されている) に戻ると、ポートレートであるはずのビューがランドスケープになります。シミュレーターを元に戻すと、ビューは再び縦向きに自動回転しますが、これは自動的に行われるべきでした!

私は実装(UIInterfaceOrientation)preferredInterfaceOrientationForPresentationしましたが、私が入れたどのView Controllerでも呼び出されません。

NavigationController をサブクラス化して を返し、シミュレーターを回転させるときtopViewControllerの自動回転は機能しているように見えますが、その仕事は決してしません。shouldAutoRotatesupportedInterfaceOrientationspreferredInterfaceOrientationForPresentationpreferredInterfaceOrientationForPresentation

誰にもこれに対する解決策がありますか?

4

1 に答える 1

0

Apple はビューを特定の方向にプッシュする機能を削除したようです。preferredInterfaceOrientationForPresentation呼び出されますが、ポップバックまたはView Controllerを提示する場合のみです。横向きのビューをプッシュするのではなく、提示する必要があり、shouldAutoRotate= NO に設定しました。

詳細については、iOS6 で、スタックにプッシュされたときに ViewController を特定の interfaceOrientation に強制する際の問題を参照してください。

于 2013-05-28T09:06:01.897 に答える