Для разработчиков, которые пытаются решить эту проблему в WKWebView
, вам нужно реализовать KVO для наблюдения canGoBack
и canGoForward
свойств WKWebView
в методе viewDidLoad
.
webView.addObserver(self, forKeyPath: #keyPath(WKWebView.canGoBack), options: .new, context: nil)
webView.addObserver(self, forKeyPath: #keyPath(WKWebView.canGoForward), options: .new, context: nil)
А в методе наблюдателя
override func observeValue(forKeyPath keyPath: String?, of object: Any?, change: [NSKeyValueChangeKey : Any]?, context: UnsafeMutableRawPointer?) {
if keyPath == #keyPath(WKWebView.canGoBack) || keyPath == #keyPath(WKWebView.canGoForward) {
backButton.isEnabled = webView.canGoBack
forwardButton.isEnabled = webView.canGoForward
}
}
Кроме того, не забудьте удалить наблюдателя, когда ViewController освобождается.