Wie kann die Aktion für ein benutzerdefiniertes UIBarButtonItem in Swift festgelegt werden?
Der folgende Code platziert die Schaltfläche erfolgreich in der Navigationsleiste:
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:nil)
self.navigationItem.rightBarButtonItem = b
Jetzt möchte ich anrufen, func sayHello() { println("Hello") }
wenn die Taste berührt wird. Meine bisherigen Bemühungen:
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 dies sayHello()
im Intellisense angezeigt wird, aber nicht funktioniert.
Danke für Ihre Hilfe.
EDIT: Für die Nachwelt funktionieren folgende Werke:
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:"sayHello")
UIBarButtonItem
während die andere dies nicht tut. Es selector
kann für sie schwierig sein, Anfänger zu verpflichten, alle Verwendungen von zu verallgemeinern. Daher entferne ich den doppelten Status, damit die Leute diese Frage auf dem neuesten Stand halten können.
action: "sayHello"