首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >iOS5:在模式UIViewController中播放Youtube视频时出现UIWebView异常

iOS5:在模式UIViewController中播放Youtube视频时出现UIWebView异常
EN

Stack Overflow用户
提问于 2011-10-26 23:48:13
回答 4查看 3.2K关注 0票数 19

更新: iOS 6 beta 1中不再出现

我目前正在使用新的iOS 5SDK调整现有的iOS 4应用程序。当我在一个阅读Youtube视频的模式视图控制器中呈现一个UIWebView时,我发现了一个新的崩溃。

开始阅读视频没有问题,但当我尝试将其设置为全屏时,我得到了以下异常:

代码语言:javascript
复制
Exception: UIViewControllerHierarchyInconsistency,
child view controller:<UIViewController: 0x6aef180> 
should have parent view controller:<WebViewController: 0x6a706c0> 
but requested parent is:<MPInlineVideoViewController: 0x6ae5d40>

下面是我如何在我的主视图控制器中实例化和呈现我的模式视图控制器:

代码语言:javascript
复制
- (IBAction)buttonReleased:(id)sender
{
    WebViewController *webVC = [[WebViewController alloc] initWithNibName:@"WebViewController" bundle:[NSBundle mainBundle]];
    webVC.modalTransitionStyle = UIModalTransitionStyleCoverVertical;
    webVC.modalPresentationStyle = UIModalPresentationPageSheet;
    [self presentModalViewController:webVC animated:YES];
}

我使用UIModalPresentationPageSheet作为modalPresentationStyle,当我将这个值设置为UIModalPresentationFullScreen时,错误不再发生。

在我的模式WebViewController中,我是如何加载我的Youtube视频的:

代码语言:javascript
复制
- (void)viewDidLoad
{
    [super viewDidLoad];

    [self.webView loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.youtube.com/watch?v=bDlm3eLRut0"]]];
}

对这个问题有什么想法吗?如果需要的话,我可以提供一个完整的示例代码来隔离这个崩溃。

谢谢!

EN

回答 4

Stack Overflow用户

发布于 2011-11-03 15:36:39

这些控制台警告是由于加载了Mac上的音频组件造成的。它是一个模拟器,而不是一个模拟器-模拟器仍然是一个Mac OS X应用程序,所以当使用音频时,它加载Mac应用程序加载的所有音频kext。当我在模拟器中为我的Bandcamp应用程序Kumbaya测试音频流时,就会发生这种情况。如果你不想看到这些问题,可以在设备上进行测试。

如果你愿意,你可以用以下命令包装你的音频方法:

代码语言:javascript
复制
#if ! TARGET_IPHONE_SIMULATOR
#endif

在模拟器中禁用它们。

票数 2
EN

Stack Overflow用户

发布于 2012-03-31 13:41:39

我们基本上通过实现我们自己的模式视图转换解决了这个问题。这实际上很容易做到;我花了大约4个小时就完成了。

如果你以全屏的方式呈现它,你也可以避免崩溃。工作表、表单工作表或页面工作表都是崩溃的原因。

票数 2
EN

Stack Overflow用户

发布于 2011-12-15 23:26:04

我在应用程序中也遇到了同样的问题。事实证明,我在UIWindow中设置了错误的rootViewController

我的NIB中有以下视图控制器层次结构:

代码语言:javascript
复制
Navigation Controller
+- Main View Controller

UIWindowrootViewController插座设置为Main View Controller,而不是Navigation Controller。一旦我将插座更改为Navigation ControllerUIViewControllerHierarchyInconsistency异常就不再发生。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7905258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档