Ios 试图在网页中加载摄像头时,Webview崩溃

Ios 试图在网页中加载摄像头时,Webview崩溃,ios,objective-c,webview,viewcontroller,Ios,Objective C,Webview,Viewcontroller,我有一个webview,它加载一个允许用户上传图片的页面。当用户选择“拍照”选项时,应用程序崩溃,并显示以下警告 警告:尝试在其视图不在窗口层次结构中的上显示 下面是用于加载webview的代码 WebViewController *webViewController = [[WebViewController alloc] initWithUrlString:urlString]; [viewController showViewControllerFullScreen:webViewCont

我有一个webview,它加载一个允许用户上传图片的页面。当用户选择“拍照”选项时,应用程序崩溃,并显示以下警告

警告:尝试在其视图不在窗口层次结构中的
上显示

下面是用于加载webview的代码

WebViewController *webViewController = [[WebViewController alloc] initWithUrlString:urlString];
[viewController showViewControllerFullScreen:webViewController];

- (void)showViewControllerFullScreen:(UIViewController *)viewController {
    UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:viewController];
    [self.view.window.rootViewController presentViewController:navigationController animated:YES completion:nil];
}

为什么当使用UINavigation控制器显示web视图时,它不是窗口层次结构的一部分?

请设置以下行

  self.window.rootViewController = navigationController;
参考文献


谢谢你的建议——这很有帮助,但却让我陷入了另一个问题。我正在使用一个现有应用程序的框架,该框架在加载webview的视图中添加了一个按钮。该按钮用于关闭webview并返回应用程序。做出建议的更改后,该按钮无法关闭webview页面。按钮操作实现以下功能:-
(void)onCancelButton:(id)发送方{[self dismissViewControllerAnimated:YES completion:nil];}
您在哪里调用此方法?您是否放置了断点并检查是否调用了按钮操作方法?您是否使用appDelegate.m的选项在DidFinishLaunching中调用了这些行?如果我的回答对您有帮助,勾选并投票给我的答案。因为其他人可以通过你的问题得到答案。此方法在WebViewController.m中调用。按钮操作方法确实会被调用,但它不会关闭视图控制器。dismissViewControllerAnimated方法执行:
-(void)dismissViewControllerAnimated:(BOOL)标志完成:(void(^)(void))完成{[self-willChangeValueForKey:NSStringFromSelector(@selector(PresentedViewControlleranimated):标志完成:^{if(completion!=nil){completion();}[self-didChangeValueForKey:NSStringFromSelector(@selector(presentedViewController))];}];}}