メインのView Controllerの上に表示されるモーダルView Controller(ポップアップView Controllerと呼びましょう)があります。ある時点で、ポップアップの背後にあるメイン ビュー コントローラーを確認する必要があります。したがって、 ポップアップ ビュー コントローラーを表示する前にmodalPresentationStyle
プロパティをに設定します。UIModalPresentationCurrentContext
そのため、ポップアップ ビュー コントローラーがモーダルに表示されている間にデバイスの向きが変わると、 メソッドwillRotateToInterfaceOrientation:
とdidRotateFromInterfaceOrientation:
メソッドは呼び出されません。supportedInterfaceOrientations
amd は適切な値を返します。回転が有効になり、サポートされている方向が正しく設定されます。'modalPresentationStyle' をデフォルト値に変更すると、ポップアップ conIt は実際に機能します。背後にメイン ビュー コントローラーが表示されないことを除いて、すべて正常に機能します。
メインのビュー コントローラーはポートレートのみをサポートし、その上のポップアップはすべての向きをサポートしていることを付け加えておきます。
iOS 5.1 デバイスでは、 メソッドwillRotate
とdidRotate
メソッドが正しく呼び出されます。そうでないのは iOS 6 デバイスだけです。
誰かが同様の問題に遭遇したか、または単一の方向ビュー コントローラーの上にモーダルで透明な多方向ビュー コントローラーを表示する必要がありましたか?