3

我有一个这样的 UIViewController:

import UIKit
import WebKit

class ViewController: UIViewController {

  var webView: WKWebView?
  var backButton: UIButton?

  override func loadView() {
    self.webView = WKWebView()

    self.backButton = UIButton(type: .system)
    self.backButton?.addTarget(self.webView, action: #selector(goBack), for: .touchUpInside)
  }
}

此代码尝试将后退按钮的点击连接到WKWebViewgoBack()实例方法。请注意,我已经传递self.webView给按钮的addTarget()调用。

这会导致编译错误:"Use of unresolved identifier 'goBack'". 我认为 Swift 编译器将能够解析goBack()到该WKWebKit实例。

我可以编译它的唯一方法是手动传入self和转发调用:goBack()

override func loadView() {
    self.webView = WKWebView()

    self.backButton = UIButton(type: .system)
    self.backButton?.addTarget(self, action: #selector(goBack), for: .touchUpInside)
  }

func goBack() {
  self.webView?.goBack()
}

我在这里遗漏了一些明显的东西吗?

4

1 回答 1

9

你可以限定你的选择器:

#selector(self.webView.goBack)
于 2016-06-17T22:29:27.357 回答