Аргумент «#selector» не может ссылаться на глобальную функцию (Swift) - PullRequest
0 голосов
/ 24 июня 2018

Я пытаюсь программно добавить 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 голосов
/ 24 июня 2018

Функция не может быть «глобальной».Это то, что говорит ошибка.

Если ваша функция объявлена ​​вне контроллера представления, то она является глобальной.

Вы можете вызывать только экземпляры (или статические) функции из селектора.

Самое простое изменение - поместить вашу функцию внутри контроллера представления.

...