“ #selector”的参数不能引用全局函数(Swift)

时间:2018-06-23 22:35:40

标签: ios swift uibarbuttonitem uinavigationitem

我正在尝试以编程方式将UIBarButtonItem添加到导航栏(它可以工作),但是我无法执行该操作。我在做什么错了?

在viewDidLoad下有以下代码:

self.navigationItem.rightBarButtonItem = UIBarButtonItem(image: UIImage(named: "visualise"), style: .plain, target: self, action: #selector(visualise(sender:)))

以及在VC类之外声明的以下函数:

func visualise(sender: UIBarButtonItem) {
// stuff to do once the button is tapped
}

我读了一些答案,说该功能不能在本地使用,但这似乎无济于事。

1 个答案:

答案 0 :(得分:1)

该功能不能为“全局”。那就是错误的意思。

如果您的函数在视图控制器外部声明,则它是全局的。

您只能从选择器中调用实例(或静态)函数。

最简单的更改是将函数放入视图控制器中。