我在网上搜索但我找不到任何解决方案。
这是我的问题:
我将YouTube视频嵌入到UIWebView中。它可以工作,但当我进入全屏播放并旋转我的iPad时,UINavigationBar会被移动(见下图)。我知道在网络视图中没有直接控制视频播放器,但我不知道如何解决它。
由于
答案 0 :(得分:1)
使用MPMoviePlayerNotification无法解决此问题,因为UIWebView视频不使用MPMoviePlayerViewController或它是开发人员私有的。 但是,还有另一种方法可以解决这个问题。
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(handleStatusBarFrameDidChange)
name:UIApplicationDidChangeStatusBarFrameNotification
object:nil];
- (void)handleStatusBarFrameDidChange {
self.navigationController.navigationBarHidden = YES;
self.navigationController.navigationBarHidden = NO;
}
答案 1 :(得分:0)
我在iPhone应用程序上遇到了类似的问题。
我想知道这是否正确,但现在下面的代码解决了它。
1。在webivew的初始化方法中添加了观察者。
[[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;
}
我从How to receive NSNotifications from UIWebView embedded YouTube video playback
开始了