首页 > 解决方案 > webViewDidStartLoad 和 webViewDidFinishLoad 不起作用

问题描述

我正在尝试检查 web 视图是否正在加载以及它是否完成加载以及当我尝试搜索它时这是我得到的但是它似乎不起作用是因为我做错了什么或者他们更改了代码为了它?我确实为 Web 视图设置了委托,所以我认为问题不在于委托。

@IBOutlet weak var webView: UIWebView!
@IBOutlet weak var activity: UIActivityIndicatorView!

override func viewDidLoad() {
    super.viewDidLoad()
    let url = URL(string: "https://stackoverflow.com")

    let urlRequest = URLRequest(url: url!)
    webView.loadRequest(urlRequest)
}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func webViewDidStartLoad(_ webView: UIWebView){
    print("Webview started Loading")
}

func webViewDidFinishLoad(_ webView: UIWebView) {
    print("Webview did finish load")
}

标签: swiftuiwebview

解决方案


您需要使您的类符合 UIWebViewDelegate 并将 webView 的管理委托给您的类:

class YourClass: UIViewController, UIWebViewDelegate {
   @IBOutlet weak var webView: UIWebView!
   @IBOutlet weak var activity: UIActivityIndicatorView!

   override func viewDidLoad() {
     super.viewDidLoad()
     let url = URL(string: "https://stackoverflow.com")

     //!!!!!!!
     webView.delegate = self
     //!!!!!!!
     let urlRequest = URLRequest(url: url!)
     webView.loadRequest(urlRequest)
   }

   override func didReceiveMemoryWarning() {
       super.didReceiveMemoryWarning()
       // Dispose of any resources that can be recreated.
   }

   func webViewDidStartLoad(_ webView: UIWebView){
     print("Webview started Loading")
   }

   func webViewDidFinishLoad(_ webView: UIWebView) {
     print("Webview did finish load")
   }
}

推荐阅读