Swift Pit

2017-06-26

解决html标签打开选择图片列表可能闪退的问题

这段代码可以复写在 Navigation Controller 中的 dismiss 方法, 用来支持用 html 标签上传图片


extension UINavigationController{
    override open func dismiss(animated flag: Bool, completion: (() -> Void)? = nil) {
        if self.presentedViewController != nil {
            super.dismiss(animated: flag, completion: completion)
        }
    }
}

之所以我们需要这个是因为 ios 中亘古不修复的一个 bug, 在 ipad 中相安无事,但是 iphone 在上传图片之前需要选择打开相机或者照片库的时候, 会在下方弹出一个图片选择 view. 这个 view 如果在 wkwebview 中打开就会基于这个 webview 而不是 navigation controller, 自然就不会连接到子 navigation controller 的下一步.

这导致了关闭这个图片选择的时候, 包括点击相机, icloud, 照片库或者取消时, 都会将整个 navigation controller 关闭. 用这段代码复写 dismiss 方法即可解决.

Go Back

随便看看 :D