ビューを縦向き、iPad を横向きに警告し、「他の」横向き (180 度) 以外には回転できません

StackOverflow https://stackoverflow.com/questions/3816566

質問

アップデート: 解決しました。下部の修正を参照してください。

すべての向きをサポートしている私の iPad アプリでは、アプリが横向きで読み込まれると、奇妙なことが起こります。

  1. 残りの部分が横向きであっても、アラート ビューは縦向きに表示されます
  2. iPad を横向きから縦向きに回転しても、回転はトリガーされません (また、 shouldAutorotate スタイル メソッドもトリガーされません)。
  3. iPad を 180 度 (「別の風景」に) 回転させると回転がトリガーされ、その後、iPad は通常どおりに動作します (つまり、回転すると縦向きにも横向きにも正しく回転します)。

以下のアラート表示画面。変だ、変だ。なぜこれが起こっているのか考えられますか?これは横向きでロードする場合にのみ発生します。縦向きでロードしてから横向きに回転すると問題なく動作します。Landtrait!

解決: この問題は、アプリの読み込みが完了するとすぐに(より具体的には、アプリの viewDidAppear: 方法)。

iOS は (4) の数を送信します shouldAutorotateToInterfaceOrientation: 起動後に現在の/メイン ビュー コントローラーを呼び出し、現在どの方向がサポートされているかを確認します。他の VC をすぐに追加したところ、前述の通話の途中でこの問題が発生しました。したがって、電話は 1 〜 2 件しかありませんでした(「ポートレート」については、ポートレートで始まるため)。

メイン ビュー コントローラーは横向きのデフォルト サポート「いいえ」のままになりましたが、新しく追加されたビュー コントローラー (向きについても尋ねられる) は喜んで「はい」と応答するようになりました。

他の VC (横向き) を削除していたら、メイン ビュー コントローラーが縦向きのままになっていたことに気付いたでしょう。つまり、ポートレートビューがあり、その上にランドスケープビューがありました。警報などは前者の方向性を考慮したため、上記の悲惨な結果になりました。

さらに、縦向きに回転しようとしても、メインビューコントローラーがすでに縦向きになっていたため、回転できませんでした。他のビューコントローラーがすでに横向きになっているため、横向きに回転することもできませんでした。「風景だがもう一方」の回転を行った場合にのみ、両方のビュー コントローラーが回転が必要であることに同意し、デバイスが回転しました。

私の場合の修正は、他のコントローラーの作成を少し遅らせることでした。を使用して performSelector:withObject:afterDelay. -- 0 が機能するように見えましたが、念のため 1 にしました。メイン vc が表示されてから別の vc が表示されるという少し奇妙に見えますが、上記よりは優れています。

役に立ちましたか?

解決

:私はすぐにアプリ完成ローディング(方法より具体的には、アプリのviewDidAppearで)限り、メインビュー・コントローラの上のUIViewController(モーダル)を添加したため、

この問題が発生しました

ソリューションの詳細については、ポストの上を参照してください。

他のヒント

の代わりにUIAlertviewの使用UIAlertController。私は同じ問題を抱えているし、その現在は修正ます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top