是否可以使用类似于webViewFinishLoad的功能而无需委托?

时间:2016-06-17 20:40:48

标签: ios objective-c swift

我正在创建一个操作PDF的框架,我立刻使用以下代码加载PDF:

@IBOutlet var webView1: UIWebView!

override func viewDidLoad() {
    super.viewDidLoad()

    if let pdf = NSBundle.mainBundle().URLForResource("template", withExtension: "pdf", subdirectory: nil, localization: nil)  {
        let req = NSURLRequest(URL: pdf)
        webView1.delegate = self
        self.webView1.loadRequest(req)
    }

}

然后利用我的ViewController类的UIWebViewDelegate属性从webViewFinishLoad中获益,以了解何时加载完成。

无论如何在没有将我的webView1委托给主视图的情况下实现同样的最终结果?

1 个答案:

答案 0 :(得分:2)

  

不幸的是,你在寻找什么是使用块回调   UIWebview不支持它们。

仍然有很多Cocoa库不支持闭包。您可以使用例如ClosureKit来执行此操作。

https://github.com/Reflejo/ClosureKit

使用此库,您将能够执行此操作

webView.didFinishLoad = { webView in
    println("didFinishLoad \(webView)")
}