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

标签 ios uiwebview ios5 html5-video modalviewcontroller

更新:不再出现在 iOS 6 beta 1 上

我目前正致力于使用新的 iOS 5 SDK 调整现有的 iOS 4 应用程序。 在读取 Youtube 视频的模态视图 Controller 中呈现 UIWebView 时,我发现了一个新的崩溃。

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

Exception: UIViewControllerHierarchyInconsistency,
child view controller:<UIViewController: 0x6aef180> 
should have parent view controller:<WebViewController: 0x6a706c0> 
but requested parent is:<MPInlineVideoViewController: 0x6ae5d40>

这是我在主视图 Controller 中实例化和呈现模态视图 Controller 的方式:

- (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 视频的方式:

- (void)viewDidLoad
{
    [super viewDidLoad];

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

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

谢谢!

最佳答案

这些控制台警告是由于正在加载 Mac 上的音频组件引起的。它是模拟器而不是模拟器——模拟器仍然是 Mac OS X 应用程序,因此在使用音频时它会加载 Mac 应用程序加载的所有音频扩展。当我在模拟器中为我的 Bandcamp 应用程序 Kumbaya 测试音频流时,就会发生这种情况。如果您不想看到这些问题,请在设备上进行测试。

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

#if ! TARGET_IPHONE_SIMULATOR
#endif

在模拟器中禁用它们。

关于iOS5:模式 UIViewController 播放 Youtube 视频时 UIWebView 出现异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7905258/

相关文章:

ios - 如何根据 UIImage 大小调整 UIImageView 的大小并适合屏幕的宽度

iphone - 拇指宽度与正常宽度不同的 UISlider 突出显示状态

ios - 使用两个 UICollectionView 在 UITableView 中显示不同的数据

ios - NSInvalidArgumentException,原因 : '-[NSNull isEqualToString:]

iphone - iOS Core Graphics 填充路径的反转?

ios - 在 UIWebview 中将字符串显示为链接 - Swift

html - 你将如何在 iOS 上的 UIWebView 中创建一个新的本地 HTML 文件?

ios - 禁用滑动以在 UIWebView 上滚动但保留拖动/平移

iphone - 应用程序仍在后台运行 Xcode 4.2 iOS 5

iphone - Xcode错误语义错误值可能无法响应 'initWithFrame:image Name:'