2015-11-22 1 views
0

Avec l'aide de this tutorial, j'ajoutais une barre de progression à ma vue avec Swift mais l'observateur ne reçoit aucun appel de lui-même.Aucun appel en cours pour observerValueForKeyPath pour UIProgressView dans 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 
     } 
    } 

} 

Un regard sur SWIFT - KVO in xcode 6 beta 6.. observeValueForKeyPath no longer called ou observeValueForKeyPath not being called n'a pas aidé. UIProgressView n'est-il pas observable? La console affiche après chaque chargement de page Finished navigating mais pas une fois 1.

Répondre

2

Il devrait être

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

Vous observez WebView estimateProgress, obtenez les progrès, puis définissez les progrès de la progressView