Jak można ustawić akcję dla niestandardowego obiektu UIBarButtonItem w Swift?Jak ustawić akcję dla UIBarButtonItem w Swift
Poniższy kod powodzeniem umieszcza przycisk na pasku nawigacyjnym:
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:nil)
self.navigationItem.rightBarButtonItem = b
Teraz chciałbym zadzwonić func sayHello() { println("Hello") }
gdy przycisk jest dotykany. Moje wysiłki dotąd:
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:sayHello:)
// also with `sayHello` `sayHello()`, and `sayHello():`
i ..
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:@selector(sayHello:))
// also with `sayHello` `sayHello()`, and `sayHello():`
i ..
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:@selector(self.sayHello:))
// also with `self.sayHello` `self.sayHello()`, and `self.sayHello():`
Zauważ, że pojawia się w sayHello()
intellisense, ale nie działa.
Dzięki za pomoc.
EDIT: Dla potomności, następujące prace:
var b = UIBarButtonItem(title: "Continue", style: .Plain, target: self, action:"sayHello")
zdać selektorów w szybkich tylko przez umieszczenie przełącznika w ciąg, 'akcja:„sayHello”' – Jiaaro
Dziękuję bardzo. Jestem pod presją, żeby to wydostać i byłem sfrustrowany. – kmiklas
To pytanie zostało wcześniej oznaczone jako duplikat [@selector() w Swift?] (Http://stackoverflow.com/questions/24007650/selector-in-swift). Jednak to pytanie pyta konkretnie o 'UIBarButtonItem', podczas gdy inne nie. Wymaganie od początkujących uogólniania wszystkich zastosowań 'selektora' może być dla nich trudne, więc usuwam zduplikowany status, aby ludzie mogli aktualizować to pytanie. – Suragch