我正在编写一个Swift Hybrid应用程序,我需要能够知道我的WKWebView何时完成了加载请求。我试图使用WKNavigationDelegate来实现这一目标。但是,我可以用这种方式设置事件的唯一方法就是:
webView.navigationDelegate = self
问题是我有一些我希望与我的请求相关联的数据,所以我创建了一个实现WKNavigationDelegate的自定义类,如下所示:
class MyNavigationDelegate : NSObject, WKNavigationDelegate {
init(...) {
//set local variables with passed args
}
func webView(webView: WKWebView, didFinishNavigation navigation: WKNavigation!) {
println("finished loading")
}
}
然后我这样分配:
webView.navigationDelegate = MyNavigationDelegate(my, arguments, here)
webView.loadRequest(...)
页面正在加载,所以我加载它的方式没有问题。我错过了什么?
答案 0 :(得分:9)
委托是一个弱属性,因此请确保您在别处持有委托类实例 - 它甚至可能在被使用之前被释放。与此同时,自我没有被解除分配,所以它正在发挥作用。