Если присмотреться, кажется, что вы подклассифицируете KINWebBrowserViewController, что вы хотели? Из документации по этой библиотеке просто видно, что она используется напрямую вместо подклассов. Это может быть частью того, где я в замешательстве. При создании контроллера представления вы бы сразу установили делегат на него своему обработчику. Без более полного представления о вашем коде будет трудно комментировать дальше.

я есть контроллер просмотра для веб-просмотра, настройка черезKINWebBrowser.

Я пробовал несколько способов заставить эти методы выполняться:

func webViewDidStartLoad(webView: UIWebView) {
    print("Strat Loading")
}
func webViewDidFinishLoad(webView: UIWebView) {
    print("Finish Loading")
}
func webView(webView: UIWebView, didFailLoadWithError error: NSError?) {
    print(error?.localizedDescription)
}
func webView(webView: UIWebView, shouldStartLoadWithRequest request: NSURLRequest, navigationType: UIWebViewNavigationType) -> Bool {
    return true
}

override func webViewDidFinishLoad(_ webView: UIWebView) {
    super.webViewDidFinishLoad(webView)
    print("Finish Loading 2")
}

Но, похоже, ничего не работает.

Мое определение класса кажется нормальным:class WebBrowserViewController: KINWebBrowserViewController, NavigationProtocol {

Но независимо от того, что я делаю - переопределяю func или нет, никакие логгеры или операторы печати, которые я помещаю в эти функции, не выполняются.

Что я делаю неправильно? Я пытаюсь создать событие, которое будет прослушивать, когда весь веб-контент загружен, чтобы я мог перестать отображать загрузочный счетчик.

РЕДАКТИРОВАТЬ: Добавление информации о делегате:

Когда я попытался добавить делегата для viewDidLoad ():

webView.delegate = self

Я получил следующую ошибку:

Ambiguous reference to member 'webView(_:decidePolicyFor:decisionHandler:)'

Это мой viewDidLoad () без настройки делегата:

override func viewDidLoad() {
    super.viewDidLoad()

    pointsNavigationItem = addPointsButtonToNavigation()

    self.showsURLInNavigationBar = false
    self.showsPageTitleInNavigationBar = false;

    self.tintColor = UIColor.navText

    self.barTintColor = .navBackground

}

Я не уверен, что KinWebBrowser выполняет делегирование таким же образом?

ДобавилKINWebBrowserDelegate к определению класса и добавлены следующие методы:

func webBrowser(_ webBrowser: KINWebBrowserViewController!, didFailToLoad URL: URL!, error: Error!) {
    print("DEBUG 5")

}

func webBrowserViewControllerWillDismiss(_ viewController: KINWebBrowserViewController!) {
    print("DEBUG 1")
}

func webBrowser(_ webBrowser: KINWebBrowserViewController!, didStartLoading URL: URL!) {
    print("DEBUG 2")

}

func webBrowser(_ webBrowser: KINWebBrowserViewController!, didFinishLoading URL: URL!) {
    print("DEBUG 3")

}

func didChangeValue<Value>(for keyPath: KeyPath<WebBrowserViewController, Value>) {
    print("DEBUG 4")

}

Ни одна из отладок не вызывается в журнале.