IOS swift使用webView加载网页上传文件报错:whose view is not in the window hierarchy!

最近项目需要做一个ios端的web嵌入,使用webview加载网,其中有一个地方是需要用户选择图片上传,但我点击选择图片的时候,很正常的弹出了文件选择框,但是,当我再点击相册,想选择图片的时候,报错了,并且退出了当前界面回到上一个界面了,报错信息:

Warning: Attempt to present <UIImagePickerController: 0x7fae01920a00> on <****.WebViewController: 0x7fae0310d730> whose view is not in the window hierarchy!

搜寻良久未果,甚至苹果论坛有说的iOS 8 的一个漏洞,然我等小菜也要想办法解决啊,没有放弃,继续寻找。。。。。



终于在谷歌上找到了一个满意的解决方案,按我看到的,我的理解是,当弹出文件选择框的时候,弹出框的 ViewController 取代了原界面的controller,当继续点击选择相册的时候,销毁了文件选择框,去往相册界面的时候,发现父controller不存在了,就会出现这个错误。

解决方式是:

override func dismissViewControllerAnimated(flag:Bool, completion: (() ->Void)?) {

        if (self.presentedViewController !=nil){

            super.dismissViewControllerAnimated(flag, completion: completion)

        }

    }


复写这个方法,加了一个判断,问题就这么解决了。。。。

不知道是不是这么理解的,个人见解,欢迎大神指点





评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值