Ios Swift中UIProgressView的observeValueForKeyPath未发生调用

Ios Swift中UIProgressView的observeValueForKeyPath未发生调用,ios,swift,uiprogressview,Ios,Swift,Uiprogressview,在我的帮助下,我用Swift在我的视图中添加了一个进度条,但是观测者自己没有收到任何呼叫 // ViewController.swift import UIKit import WebKit class ViewController: UIViewController, WKNavigationDelegate { var webView: WKWebView? @IBOutlet dynamic var progressView: UIProgressView!

在我的帮助下,我用Swift在我的视图中添加了一个进度条,但是观测者自己没有收到任何呼叫

//  ViewController.swift

import UIKit
import WebKit

class ViewController: UIViewController, WKNavigationDelegate {

    var webView: WKWebView?

    @IBOutlet dynamic var progressView: UIProgressView!

    override func viewDidLoad() {
        super.viewDidLoad()

        setupBrowser()

        self.addObserver(self, forKeyPath: "estimatedProgress", options: .New, context: nil)

        let website = "https://google.com"
        let site = NSURL(string: website)

        loadURLRequest(NSURLRequest(URL: site!))
    }

    func setupBrowser() {
        let wkWebView = WKWebView(frame: view.bounds)
        wkWebView.navigationDelegate = self
        webView = wkWebView

        let wkProgressView = UIProgressView(frame: view.bounds)
        progressView = wkProgressView

        self.view.insertSubview(wkWebView, belowSubview: wkProgressView)
    }

    func loadURLRequest(request: NSURLRequest) {
        webView?.loadRequest(request)
    }

    func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
        print("Finished navigating")
    }

    override func observeValueForKeyPath(keyPath: String?, ofObject object: AnyObject?, change: [String : AnyObject]?, context: UnsafeMutablePointer<Void>) {
        print(1)
        if (keyPath == "estimatedProgress") {
            // TODO
        }
    }

}
//ViewController.swift
导入UIKit
导入WebKit
类ViewController:UIViewController、WKNavigationDelegate{
var webView:WKWebView?
@IBOutlet动态var progressView:UIProgressView!
重写func viewDidLoad(){
super.viewDidLoad()
设置浏览器()
self.addObserver(self,forKeyPath:“estimatedProgress”,选项:。新建,上下文:nil)
让网站=”https://google.com"
let site=NSURL(字符串:网站)
loadURLRequest(NSURLRequest(URL:site!))
}
func setupBrowser(){
设wkWebView=wkWebView(frame:view.bounds)
wkWebView.navigationDelegate=self
webView=wkWebView
让wkProgressView=UIProgressView(框架:view.bounds)
progressView=wkProgressView
self.view.insertSubview(wkWebView,belowSubview:wkProgressView)
}
func loadURLRequest(请求:NSURLRequest){
webView?.loadRequest(请求)
}
func webView(webView:WKWebView,didfishnavigation:WKNavigation!){
打印(“完成导航”)
}
重写func observeValueForKeyPath(键路径:String?,对象对象的类型:AnyObject?,更改:[String:AnyObject]?,上下文:UnsafeMutablePointer){
印刷品(1)
如果(关键路径==“estimatedProgress”){
//待办事项
}
}
}
看一眼还是没用。你的观点是不可见的吗?每次页面加载
完成导航后,控制台都会显示,但不应显示一次
1

 self.webView.addObserver(self, forKeyPath: "estimatedProgress", options: .New, context: nil)
观察webview
estimateProgress
,获取进度,然后设置progressView的进度