我在从名为“myBrowser”的viewController中删除观察者时遇到问题。我有一个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被解除分配,而键值观察者仍在注册”……我尝试将removeObserver放在viewDidDisapper中,放在viewWillDisappear中,但如果我在progressView栏完全加载之前按下按钮,我的程序仍然崩溃。
我如何解决这个问题?