(Swift,iOS8,Xcode6,iPhone / iPad)
webViewDidFinishLoad
没有被调用,没有被激活,也没有被激活。
是的,我已将包含视图控制器设置为委托。我在UIWebView上进行了CTRL-mousedowned,将其拖动到代表视图控制器的小黄圈,然后释放。右键单击UIWebView对象会显示委托已设置。
是的,我在类声明中实现了UIWebViewDelegate
,如下所示:
class Paragraph: UIViewController, UIWebViewDelegate {
是的,我确实重启了Xcode,并在模拟器和实际的iPhone 4S上进行测试。
请求如下所示:
@IBOutlet var paragraph : UIWebView = nil
var r = NSBundle.mainBundle().pathForResource("cheddar", ofType: "htm")
var u = NSURL(fileURLWithPath: r)
paragraph.loadRequest(NSURLRequest(URL: u))
回调函数如下所示:
func webViewDidFinishLoad() {
println("webViewDidFinishLoad")
}
答案 0 :(得分:4)
我明白了。回调缺少一个参数。后人:
func webViewDidFinishLoad(webView: UIWebView!) {
请注意webView: UIWebView!
参数
在这种情况下,或许更重要的是,我发现错误的方式。我创建了一个全新的视图控制器,并将它拼凑在一起,仔细检查每一步,以确保我没有错过任何东西。
当Intellisense弹出窗口显示带参数的函数时,我看到了我的错误。
注意:在Swift 2.2中,UIWebViewDelegate协议指定了不同的可选性:
webView: UIWebView
。
webView: UIWebView!
会产生警告。