WKNavigationDelegate 仅在设置为 self 时有效
WKNavigationDelegate only works if set to self
我正在编写一个 Swift 混合应用程序,我需要能够知道我的 WKWebView 何时完成加载请求。我正在尝试使用 WKNavigationDelegate 来实现这一点。但是,我可以触发事件的唯一方法是这样设置:
webView.navigationDelegate = self
问题是我有一些数据需要与我的请求相关联,所以我创建了一个自定义 class 来实现 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(...)
页面正在加载,所以我的加载方式没有问题。我错过了什么?
委托是一个弱 属性,因此请确保您在别处保留委托 class 实例——它可能在使用之前就已被释放。同时,self 没有被释放,所以它正在工作。
我正在编写一个 Swift 混合应用程序,我需要能够知道我的 WKWebView 何时完成加载请求。我正在尝试使用 WKNavigationDelegate 来实现这一点。但是,我可以触发事件的唯一方法是这样设置:
webView.navigationDelegate = self
问题是我有一些数据需要与我的请求相关联,所以我创建了一个自定义 class 来实现 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(...)
页面正在加载,所以我的加载方式没有问题。我错过了什么?
委托是一个弱 属性,因此请确保您在别处保留委托 class 实例——它可能在使用之前就已被释放。同时,self 没有被释放,所以它正在工作。