WKNavigationDelegate методы не вызваны - PullRequest
0 голосов
/ 22 апреля 2019

Я пытаюсь написать контроллер с веб-просмотром, и мне нужны методы WKNavigationDelegate, проблема в том, что эти методы вообще не выполняются.

Это мой контроллер:

import UIKit
import WebKit

public class WebViewController: UIViewController {

    private let webView: WKWebView = WKWebView()

    override public func viewDidLoad() {
        super.viewDidLoad()

        webView.navigationDelegate = self
        webView.isUserInteractionEnabled = true

        view = webView
    }
}

extension WebViewController: WKNavigationDelegate {
    private func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
        debugPrint("didCommit")
    }

    private func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
        debugPrint("didFinish")
    }

    private func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
        debugPrint("didFail")
    }
}

Этот контроллер добавляется к контроллеру вида сверху, используя вид контейнера, также веб-вид корректно загружает сайт.Кто-нибудь сталкивался с подобной проблемой или знает, что я делаю что-то не так

1 Ответ

1 голос
/ 22 апреля 2019

Похоже, что вы добавляете private с помощью WKWebViewDelegate методов. Удалите подобные, и все будет работать.

extension ViewController: WKNavigationDelegate {
 func webView(_ webView: WKWebView, didCommit navigation: WKNavigation!) {
    debugPrint("didCommit")
}

 func webView(_ webView: WKWebView, didFinish navigation: WKNavigation!) {
    debugPrint("didFinish")
}

 func webView(_ webView: WKWebView, didFail navigation: WKNavigation!, withError error: Error) {
    debugPrint("didFail")
}

} enter image description here Попробуйте это,Также не забудьте загрузить URL в WebView или в любом другом месте, куда вы хотите загрузить.

...