2017-08-31 4 views
0

アプリのデバイスの向きは肖像画のみですが、1つのビデオプレーヤーの表示があり、横向きに回転して戻ってくる必要があります。supportedInterfaceOrientationsForWindowはもう動作しないようですか?

私はAppDelegateでsupportedInterfaceOrientationsForWindowメソッドを使用しようとしましたが、もう動作しないようですか?

Xcode 8.3.3、iOS 10.3.2、Deployment Targitは8.0です。

コードを貼り付ける必要がありますか?

答えて

0

windowメソッドパラメータを使用している場合は、self.windowを代わりに使用してみてください。ローテーション中にwindow_UIInteractiveHighlightEffectWindowであり、必要でない可能性があります。

supportedInterfaceOrientationsForWindowには、どのビューコントローラが表示されているかによって異なるUIInterfaceOrientationMask値を返すコードがあります。ポートレートビューコントローラからランドスケープビューコントローラへのセグの間にwindowメソッドパラメータで可視のビューコントローラを検出すると、可視コントローラは常にナビゲーションコントローラ、親ビューコントローラ、子ビューコントローラ、または子ビューを持たない汎用UIViewControllerクラスでした。

代わりにself.windowを使用している場合、可視のビューコントローラが予想通りでした(ランドスケープで表示する必要があるビューコントローラの1つ)。ここ

は、方法は、回転中に呼び出されるwindowself.window差の例は次のとおり

(lldb) po window.debugDescription 
"Optional(<_UIInteractiveHighlightEffectWindow: 0x106325960; frame = (0 0; 667 375); hidden = YES; gestureRecognizers = <NSArray: 0x1c4444a40>; layer = <UIWindowLayer: 0x1c4235c60>>)" 

(lldb) po self.window.debugDescription 
"Optional(<UIWindow: 0x106409840; frame = (0 0; 667 375); autoresize = W+H; gestureRecognizers = <NSArray: 0x1c0054c40>; animations = { position=<CABasicAnimation: 0x1c02323c0>; bounds.origin=<CABasicAnimation: 0x1c0232480>; bounds.size=<CABasicAnimation: 0x1c02324a0>; }; layer = <UIWindowLayer: 0x1c0223a00>>)" 
関連する問題