ビューを縦向き、iPad を横向きに警告し、「他の」横向き (180 度) 以外には回転できません
-
26-09-2019 - |
質問
アップデート: 解決しました。下部の修正を参照してください。
すべての向きをサポートしている私の iPad アプリでは、アプリが横向きで読み込まれると、奇妙なことが起こります。
- 残りの部分が横向きであっても、アラート ビューは縦向きに表示されます
- iPad を横向きから縦向きに回転しても、回転はトリガーされません (また、 shouldAutorotate スタイル メソッドもトリガーされません)。
- iPad を 180 度 (「別の風景」に) 回転させると回転がトリガーされ、その後、iPad は通常どおりに動作します (つまり、回転すると縦向きにも横向きにも正しく回転します)。
以下のアラート表示画面。変だ、変だ。なぜこれが起こっているのか考えられますか?これは横向きでロードする場合にのみ発生します。縦向きでロードしてから横向きに回転すると問題なく動作します。
解決: この問題は、アプリの読み込みが完了するとすぐに(より具体的には、アプリの viewDidAppear:
方法)。
iOS は (4) の数を送信します shouldAutorotateToInterfaceOrientation:
起動後に現在の/メイン ビュー コントローラーを呼び出し、現在どの方向がサポートされているかを確認します。他の VC をすぐに追加したところ、前述の通話の途中でこの問題が発生しました。したがって、電話は 1 〜 2 件しかありませんでした(「ポートレート」については、ポートレートで始まるため)。
メイン ビュー コントローラーは横向きのデフォルト サポート「いいえ」のままになりましたが、新しく追加されたビュー コントローラー (向きについても尋ねられる) は喜んで「はい」と応答するようになりました。
他の VC (横向き) を削除していたら、メイン ビュー コントローラーが縦向きのままになっていたことに気付いたでしょう。つまり、ポートレートビューがあり、その上にランドスケープビューがありました。警報などは前者の方向性を考慮したため、上記の悲惨な結果になりました。
さらに、縦向きに回転しようとしても、メインビューコントローラーがすでに縦向きになっていたため、回転できませんでした。他のビューコントローラーがすでに横向きになっているため、横向きに回転することもできませんでした。「風景だがもう一方」の回転を行った場合にのみ、両方のビュー コントローラーが回転が必要であることに同意し、デバイスが回転しました。
私の場合の修正は、他のコントローラーの作成を少し遅らせることでした。を使用して performSelector:withObject:afterDelay.
-- 0 が機能するように見えましたが、念のため 1 にしました。メイン vc が表示されてから別の vc が表示されるという少し奇妙に見えますが、上記よりは優れています。
解決
この問題が発生しました
ソリューションの詳細については、ポストの上を参照してください。
他のヒント
の代わりにUIAlertviewの使用UIAlertController。私は同じ問題を抱えているし、その現在は修正ます。