2017-06-14 5 views
0

すべてのデバイスの向きをサポートするメインのViewControllerと、ランドスケープのみをサポートするビデオプレーヤーのViewControllerがあります。iOS ViewControllerは、風景から戻った後にランドスケープのランドスケープの変更をサポートします。

デバイスの向きがロックされておらず、ビデオからメインのViewControllerに戻ると、デバイスの向きに合わせて自動的に回転します。これが望ましい動作です。

しかし、デバイスの向きがロックされている状態でポートレートモードのメインViewControllerから開始すると、私はランドスケープビデオから戻り、メインのViewControllerがランドスケープモードにロックされます。これはiOS 9以降でのみ発生します。

私はそれが関連しているとは確信していませんが、メインのViewControllerはCordovaのCDVViewControllerを継承しています。ここでVideoPlayerViewControllerからオリエンテーション関連のコードは次のとおりです。

- (BOOL)shouldAutorotate{ 
    return YES; 
} 

- (NSInteger)supportedInterfaceOrientations{ 
    return UIInterfaceOrientationMaskLandscape; 
} 

- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation{ 
    return UIInterfaceOrientationLandscapeLeft; 
} 

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeLeft || 
      interfaceOrientation == UIInterfaceOrientationLandscapeRight); 
} 

私はこれを解決する方法上の任意のアイデアをいただければ幸いです。ありがとう!

+0

ビデオビューはどのように表示されていますか?UINavigationControllerまたはモーダルビューコントローラにプッシュされますか? – Ladislav

答えて

0

オリエンテーションを変更するには、CDVViewControllerの障害があると思います。

UIKit要素を持つ通常のUIViewControllerを使用し、デバイスの向きがロックされている場合、デバイスの向きロックがONの状態で縦向きから横向きに切り替わることはありません。

CDVViewControllerを通常のUIViewControllerに置き換えて、VideoPlayerViewControllerを表示するボタンを追加するだけで、ポートフォリオが期待通りに維持されることがわかります。

関連する問題