Wie kann die Aktion für ein benutzerdefiniertes UIBarButtonItem in Swift festgelegt werden?So legen Sie die Aktion für ein UIBarButtonItem in Swift fest
Der folgende Code platziert erfolgreich auf den Button in der Navigationsleiste:
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:nil)
self.navigationItem.rightBarButtonItem = b
Nun würde Ich mag func sayHello() { println("Hello") }
anrufen, wenn die Taste berührt wird. Meine Bemühungen bisher:
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:sayHello:)
// also with `sayHello` `sayHello()`, and `sayHello():`
und ..
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:@selector(sayHello:))
// also with `sayHello` `sayHello()`, and `sayHello():`
und ..
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:@selector(self.sayHello:))
// also with `self.sayHello` `self.sayHello()`, and `self.sayHello():`
Beachten Sie, dass sayHello()
im Intellisense angezeigt wird, aber nicht funktioniert.
Danke für Ihre Hilfe.
EDIT: Für die Nachwelt folgende Arbeiten:
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:"sayHello")
Sie Selektoren in geschickter Pass nur durch den Wähler in einem String setzen, 'Aktion: "sayHello"' – Jiaaro
Sie so viel Dank. Ich bin unter Druck, das rauszukriegen und war frustriert. – kmiklas
Diese Frage wurde zuvor als ein Duplikat von [@selector() in Swift?] Markiert (http://stackoverflow.com/questions/24007650/selector-in-swift). Diese Frage fragt jedoch speziell nach 'UIBarButtonItem', während die andere nicht. Wenn Anfänger gezwungen sind, alle Verwendungen von Selektor zu verallgemeinern, kann das für sie schwierig sein. Daher entferne ich den doppelten Status, damit die Leute diese Frage auf dem neuesten Stand halten können. – Suragch