1

我在网上搜索,但没有找到任何解决方案。

那是我的问题:

我在 UIWebView 中嵌入了 YouTube 视频。它可以工作,但是当我进入全屏播放并旋转我的 iPad 时,UINavigationBar 会移动(见下图)。我知道在网页视图中没有直接控制视频播放器,但我不知道如何解决。

谢谢

拆分导航栏

4

2 回答 2

1

使用 MPMoviePlayerNotification 无法解决此问题,因为 UIWebView Video 不要使用 MPMoviePlayerViewController 或者它是开发人员私有的。但是,还有另一种方法可以修复此错误。

[[NSNotificationCenter defaultCenter] addObserver:self
                                         selector:@selector(handleStatusBarFrameDidChange)
                                             name:UIApplicationDidChangeStatusBarFrameNotification
                                           object:nil];

- (void)handleStatusBarFrameDidChange {
    self.navigationController.navigationBarHidden = YES;
    self.navigationController.navigationBarHidden = NO;
}    
于 2014-12-10T02:17:00.773 回答
0

我在我的 iPhone 应用程序上遇到了类似的问题。

我想知道这是否是正确的方法,但现在下面的代码解决了它。

1. webivew的initialize方法中增加了观察者。

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(youTubeStarted:) name:@"UIMoviePlayerControllerDidEnterFullscreenNotification" object:nil];

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(youTubeFinished:) name:@"UIMoviePlayerControllerDidExitFullscreenNotification" object:nil];

当您不再需要观察者时,应将其删除。我只是将代码放在 webview 的 dealloc 方法中。

[[NSNotificationCenter defaultCenter] removeObserver:self];

2.电影开始时隐藏导航栏,电影结束时再次显示。
* 代码中的 contentsViewController 是我的 webview 的所有者。所以就我而言。

- (void)youTubeStarted:(NSNotification *)notification
{
    self.contentsViewController.navigationController.navigationBarHidden = YES;
}

- (void)youTubeFinished:(NSNotification *)notification
{
    self.contentsViewController.navigationController.navigationBarHidden = NO;
}

我从如何从 UIWebView 嵌入式 YouTube 视频播放接收 NSNotifications 中获得了方法

于 2012-07-15T10:54:15.110 回答