代码之家  ›  专栏  ›  技术社区  ›  CristianMoisei

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

  •  0
  • CristianMoisei  · 技术社区  · 6 年前

    我正试图通过编程将一个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 回复  |  直到 6 年前
        1
  •  1
  •   Fogmeister    6 年前

    函数不能是全局的。错误就是这样说的。

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

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

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