2017-06-26
这段代码可以复写在 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 方法即可解决.