我从viewController中删除名为"myBrowser"的观察者时遇到问题.我有一个ProgressView栏,这是我添加观察者的代码:
webView!.addObserver(self, forKeyPath: "estimatedProgress", options: .New, context: nil)
在这个控制器中,我有一个按钮,让我回到另一个控制器:
@IBAction func disa(sender: UIBarButtonItem) { self.navigationController?.popViewControllerAnimated(true) }
如果我加
webView?.removeObserver(self, forKeyPath: "estimatedProgress")
在disa func中,我的应用程序崩溃,因为"WKWebView被解除分配,而键值观察者仍然注册了它"...我尝试将viewOidDisapper中的removeObserver放在viewWillDisappear中,但是如果我在progressView栏完全加载之前按下按钮我的应用程序仍会崩溃.
我该如何解决这个问题?
删除deinit
方法中的观察者
deinit { webView!.removeObserver(self, forKeyPath: "estimatedProgress") }