4

すべてのポートレート アプリケーションの一部であるブラウザーに Youtube ビデオを埋め込んでいます。YouTube ビデオを起動すると、MPAVController で再生され、Landscape での回転が許可されます。これは私にとっては問題ではありませんが、問題は、ビデオが横向きで、「OK」を押してビデオを閉じる場合です。ブラウザに戻りますが、iPhone のステータス バーがランドスケープ モードのままになり、アプリの上部に空白が残り、回転方向に応じてステータス バーがアプリの右または左の部分に重なっています。

UIWebView を含むビュー コントローラーが縦向きにロックされています。

- (BOOL) shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskPortrait;
}

6.0 より前の SDK でコンパイルする場合、この問題は存在しないことに注意してください。

同様の問題を抱えている人には解決策がありますか?

4

2 に答える 2

5

私は同じ問題に直面しています。これが私がそれを解決した方法です:

最初に、UIWebView を保持する ViewController で、ExitFullscreenNotification を受け取るように登録します。

- (void)viewDidLoad {
    [super viewDidLoad];
    // For FullSCreen Exit
    [[NSNotificationCenter defaultCenter] addObserver:self
                                             selector:@selector(youTubeVideoExit:) 
                                                 name:@"UIMoviePlayerControllerDidExitFullscreenNotification"
                                               object:nil];
}

次に、"exit fullscreen" ハンドラーで、ポートレート モードを強制します。

- (void)youTubeVideoExit:(id)sender {
  [[UIApplication sharedApplication] setStatusBarOrientation:UIDeviceOrientationPortrait animated:NO];
}

ビデオがランドスケープ モードで終了すると、ステータス バーの位置が一瞬変化します。これは最善の解決策ではないかもしれませんが、少なくとも問題は解決します。

それが役に立てば幸い!

于 2012-10-25T16:00:16.037 に答える