¿Cómo se puede configurar la acción para un UIBarButtonItem personalizado en Swift?
El siguiente código coloca correctamente el botón en la barra de navegación:
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:nil)
self.navigationItem.rightBarButtonItem = b
Ahora, me gustaría llamar func sayHello() { println("Hello") }
cuando se toque el botón. Mis esfuerzos hasta ahora:
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:sayHello:)
// also with `sayHello` `sayHello()`, and `sayHello():`
y..
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:@selector(sayHello:))
// also with `sayHello` `sayHello()`, and `sayHello():`
y..
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:@selector(self.sayHello:))
// also with `self.sayHello` `self.sayHello()`, and `self.sayHello():`
Tenga sayHello()
en cuenta que aparece en el intellisense, pero no funciona.
Gracias por tu ayuda.
EDITAR: Para la posteridad, las siguientes obras:
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:"sayHello")
fuente
action: "sayHello"
UIBarButtonItem
mientras que la otra no. Requerir que los principiantes generalicen todos los usos deselector
puede ser difícil para ellos, por lo que eliminaré el estado duplicado para que la gente pueda mantener esta pregunta actualizada.