UIWebView 中的嵌入式 youtube 播放器正在破坏视图层次结构

Posted

技术标签:

【中文标题】UIWebView 中的嵌入式 youtube 播放器正在破坏视图层次结构【英文标题】:Embedded youtube player in UIWebView is screwing up view hierarchy 【发布时间】:2011-12-30 22:30:43 【问题描述】:

我展示了一个 UIViewController,它在 viewDidLoad 中设置了 UIWebView 作为其视图属性。 我从我的应用程序的主屏幕模态地呈现这个视图控制器。带有 webview 的 ViewController 显示在一个 navigationcontroller 中,它隐藏了它的导航栏,并且它的工具栏设置了典型的浏览器控件。

除了 youtube 视频之外,所有形式的视频都可以在 web 视图中正常播放。 当嵌入式 youtube 播放器启动时,一切正常,视频播放。但是当它通过按下完成按钮退出时,我的应用程序的状态会跳回到我的主屏幕,同时在屏幕顶部留下一个 webview 的滑行,以及 UINavigationController 的一个滑行。包含 UIWebView 的 UIViewController 永远不会被释放,并且在我的应用程序仍处于活动状态时继续存在。

这是问题的图片:

这是 youtube 播放器启动之前的图像:

顶部的部分是 webview 的左侧,其中一半是属于该视图的 uinavigationcontroller

我在堆栈上查看了类似的问题,其他人遇到了类似的问题,但几秒钟后他们就崩溃了,因为他们正在修改 CALayer 属性。这不是这里的情况。该应用程序不会崩溃,只是在我终止它之前无法正常运行。

有没有人知道为什么会这样? 或者有没有办法让所有 youtube 视频在 youtube 应用程序中启动? (虽然这不太理想)

谢谢, 萨姆

【问题讨论】:

【参考方案1】:

也许你现在已经修复了它,但我在导航控制器和嵌入式 youtube 上遇到了类似的问题,如果你使用以 iframe 开头的较新的嵌入代码,它应该可以工作。这至少对我有用

【讨论】:

以上是关于UIWebView 中的嵌入式 youtube 播放器正在破坏视图层次结构的主要内容,如果未能解决你的问题,请参考以下文章

如何从 UIWebView 嵌入式 YouTube 视频播放接收 NSNotifications

iPad SDK:嵌入式 YouTube 电影在 UIWebView 后面播放全屏版本

UIWebView 嵌入的 Youtube 视频旋转不流畅

UIWebView 模态 YouTube 播放器“完成”按钮操作

Youtube iFrame API pauseVideo 在 UIWebView 中未定义

为啥 Youtube 视频没有填满 UiWebView?