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)

        }

    }


複寫這個方法,加了一個判斷,問題就這麼解決了。。。。

不知道是不是這麼理解的,個人見解,歡迎大神指點





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