iOS アプリのすべてのビュー コントローラーで垂直方向のみをサポートしたいと考えています。ただし、ビューコントローラーの1つにYouTubeビデオを埋め込み、そのビデオが全画面表示に選択されている場合、ユーザーが携帯電話を水平に向けて、ビデオが拡大して全画面表示になるようにしたい.
編集: iOS 6 の Autorotate から次のコードを使用してみましたが、奇妙な動作があります:
- (NSUInteger) application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window {
return self.fullScreenVideoIsPlaying ?
UIInterfaceOrientationMaskAllButUpsideDown :
UIInterfaceOrientationMaskPortrait;
}
UIWebView
/YouTube フレームを表示するビュー コントローラーでは、次のコードが my.xml に含まれていviewDidLoad
ます。
[[NSNotificationCenter defaultCenter]
addObserver:self
selector:@selector(windowNowVisible:)
name:UIWindowDidBecomeVisibleNotification
object:self.view.window
];
- (void)windowNowVisible:(NSNotification *)notification
{
AppDelegate* appDelegate = (AppDelegate*)[[UIApplication sharedApplication] delegate];
appDelegate.fullScreenVideoIsPlaying = !(appDelegate.fullScreenVideoIsPlaying);
}
ただし、ユーザーがフルスクリーンの YouTube ビデオで [完了] を押したときに、電話を水平に持っていると、表示中のビュー コントローラーも水平のままになります (現在のビュー コントローラーを縦向きにしたい)。fullSreenVideoIsPlaying
これは、表示中のビュー コントローラーが縦向きになるように十分な速さで更新されていない変数の競合です。
これを達成する方法についてのフィードバックは大歓迎です。
ありがとう!