iOS 6:Youtube在浏览器中嵌入视频(MPAVController)可以在横向模式下锁定应用程序

Hul*_*ASH 4 youtube iphone uiinterfaceorientation landscape-portrait ios6

我在浏览器中嵌入了Youtube视频,这是所有肖像应用程序的一部分.当您启动YouTube视频时,它将在MPAVController中播放并允许在Landscape中旋转.这对我来说不是问题,但问题是如果视频是横向的,我按"OK"关闭视频; 我返回浏览器,但iPhone状态栏现在停留在横向模式,在应用程序顶部留下一个空白区域,以及状态栏覆盖我的应用程序的右侧或左侧部分,具体取决于旋转方向.

包含UIWebView的视图控制器被纵向锁定:

- (BOOL) shouldAutorotate
{
    return YES;
}

- (NSUInteger)supportedInterfaceOrientations{
    return UIInterfaceOrientationMaskPortrait;
}
Run Code Online (Sandbox Code Playgroud)

请注意,使用6.0之前的SDK进行编译时,不会出现此问题.

有类似问题的人有解决方案吗?

ale*_*lex 5

我面临同样的问题.以下是我如何解决它:

首先在包含UIWebView的ViewController上注册以接收ExitFullscreenNotification:

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

然后,在"退出全屏"处理程序上,强制纵向模式:

- (void)youTubeVideoExit:(id)sender {
  [[UIApplication sharedApplication] setStatusBarOrientation:UIDeviceOrientationPortrait animated:NO];
}
Run Code Online (Sandbox Code Playgroud)

当视频以横向模式完成时,用户会看到状态栏一瞬间改变其位置.这可能不是最好的解决方案,但至少可以解决问题.

希望能帮助到你!