Во-первых, optional func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
- это метод, объявленный в WKNavigationDelegate
, следовательно, ваш класс должен соответствовать протоколу WKNavigationDelegate
, а ваш код должен выглядеть как webView.navigationDelegate = self
Во-вторых, для вашего другого вопроса вcomments «Почему он печатает заявление через несколько секунд после того, как веб-просмотр уже загружен на мой телефон?»
optional func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!)
вызывается, когда навигация по мэйнфрейму веб-просмотра завершена, т.е. WKWebView полностью завершает загрузку всей страницы.
Идеальная реализация для отображения / скрытия загрузочного изображения:
- Соответствует WKNavigationDelegate.
- Реализуйте
optional func webView(_ webView: WKWebView, didStartProvisionalNavigation navigation: WKNavigation!)
и напишите код для отображения загрузочного изображения в этой функции.Поскольку эта функция вызывается, как только WKWebView запускает навигацию по мэйнфрейму. - Реализуйте
optional func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!)
и напишите код, чтобы скрыть загрузочное изображение в этой функции.Поскольку эта функция вызывается, как только содержимое начинает поступать в WKWebView. - Также реализуйте
optional func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error)
и напишите код, чтобы скрыть загрузочное изображение в этой функции.Эта функция должна быть реализована при неудачной загрузке URL.