Я программно добавляю некоторые кнопки в свою панель инструментов с помощью быстрого доступа. Я видел, как добавить действие к кнопке, и я думаю, что я делаю это правильно, но, очевидно, я не из-за того, что продолжаю получать «непризнанный селектор, отправленный экземпляру», когда я нажимаю кнопку. Что я делаю не так?Swift - вызов функции при нажатии кнопки - непризнанный селектор, отправленный в экземпляр
Вот как я добавляю кнопки на панели инструментов:
func addButtonsToToolbar(view: UIView?)
{
let userTrackingArrow = MKUserTrackingBarButtonItem(mapView: self.mapView)
let flexSpace = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.FlexibleSpace, target: nil, action: nil)
let refresh: UIBarButtonItem = UIBarButtonItem(barButtonSystemItem: UIBarButtonSystemItem.Refresh, target: view, action: "refreshbuttonTapped:")
var items = [UIBarButtonItem]()
items.append(userTrackingArrow)
items.append(flexSpace)
items.append(refresh)
self.toolBar.items = items
}
Это функция, которую я хочу назвать с «обновить» нажата кнопка, но это не называется. Вместо этого я получаю «нераспознанный селектор, отправленный в экземпляр».
func refreshbuttonTapped(sender: AnyObject!)
{
print("Button tapped")
}
Где находится функция func refreshbuttonTapped (отправитель: AnyObject!) '? Тот же класс с 'func addButtonsToToolbar (view: UIView?)'? И что такое '(view: UIView?)'? – anhtu
Да, он определен в том же классе, что и addButtonsToToolbar, а view - self.mapView –
Если вы разместите сообщение об ошибке с консоли, это поможет. Как уже упоминалось, он, вероятно, ищет refreshbuttonTapped с неправильным представлением. Вы можете захотеть сам, который будет вашим контроллером. – Jeremiah