我发现,编译iOS 8(并在iOS 8中运行)时,UIWebView
无法显示相机/图像选择器,如果UIWebView
位于视图控制器中模态。它在视图控制器中直接从窗口rootViewController
或从其中推送的视图控制器“挂起”,没有问题。iOS 8 SDK:模态UIWebView和相机/图像选择器
测试应用程序可以在https://dl.dropboxusercontent.com/u/6214425/TestModalWebCamera.zip找到,但我会在下面描述它。我的测试应用程序(内置故事板,但实际应用程序不使用它们)有两个视图控制器(非原名为ViewController
和ViewController2
)。 ViewController
包含在作为根视图控制器的UINavigationController
中。 ViewController
包含UIWebView
(工作正常),“显示”(“推”)ViewController2
和模式地呈现ViewController2
的按钮。 ViewController2
还有另一个UIWebView
,它在“推”时起作用,但在“呈现”时不起作用。
两个ViewController
和ViewController2
装载有:
- (void)viewDidLoad {
[super viewDidLoad];
[self.webView loadHTMLString:@"<input type=\"file\" accept=\"image/*;capture=camera\">" baseURL:nil];
}
当试图使用模式UIWebView
的Xcode打印以下控制台或解散的应用模式:
Warning: Attempt to present <UIImagePickerController: 0x150ab800> on <ViewController2: 0x14623580> whose view is not in the window hierarchy!
我目前的理论UIActionSheet
到UIAlertController
的变化可能产生了这种情况,但这很难证明。以防万一,我会打开一个雷达与苹果,以防万一。
有人发现相同的情况和一些解决方法?
目前处于同一条船上,尚未找到解决方法。我正在使用的应用程序在iOS 7中工作正常,但其行为与您在iOS 8中描述的相似。我在此问题上投入了一笔奖金,希望它能获得更多关注。 – bloudermilk 2014-09-22 18:08:15
首先,输入文件在safari iOS 8中被破坏,它不会上传任何东西,这是一个错误,将在下次更新时修复。但我没有你的问题,我的应用程序只是当我点击输入文件按钮并选择类型(相机或照片库,它并不重要)崩溃 – jcesarmobile 2014-09-24 06:48:36
同样在这里。当webview在作为Modal呈现的控制器内部时发生问题。我试图找出一个工作区。仍然适用于iOS 7,但不适用于iOS 8. – Marc 2014-09-24 21:12:45