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)

        }

    }


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

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





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章