在Swift中使用参数选择静态函数?

时间:2018-02-06 17:45:05

标签: swift function swift3 selector

是否可以在Swift中使用带参数的静态函数选择器?

我尝试的语法是:

  button.addTarget(VCPresenter.self, action: #selector(VCPresenter.handleBackButton(_:parentNavigationController!)), for: .touchUpInside)

,静态方法就是这个

  @objc public static func handleBackButton(_ controller: UINavigationController) {
    controller.popViewController(animated: true);
}

当我编译时,我得到了

  

错误:(24,56)' #selector'并不是指' @ objc'方法,属性或初始化程序

这甚至可以吗?

1 个答案:

答案 0 :(得分:0)

我使用单一视图应用程序和这项工作制作了新项目。如果这对您有用,请告诉我。

import UIKit

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.

        let button = UIButton()
        button.addTarget(self, action: #selector(ViewController.buttonAction(x:y:)), for: .touchUpInside)
    }

    @objc public static func buttonAction(x: Int, y: String){
        print("Test")
    }
}