Come ottenere il nome del pulsante in un'azione?
Domanda
Ho un pulsante di avvio di nome e voglio conoscere nel metodo che definisce ciò che il suo nome è e io non sono davvero sicuro di come farlo. Questo è il metodo delle chiamate pulsante.
-(IBAction) startMotion: (id)sender {
UIButton * buttonName = (UIButton *) sender;
NSLog(@"Button Name: %@", buttonName.currentTitle);
}
Lo stampe NSLog
Pulsante Nome: (null)
Soluzione 3
Stavo usando la proprietà sbagliata in Interface Builder.I stava usando nome di proprietà del pulsante nella Interface Builder anziché la proprietà titolo dalle impostazioni dei pulsanti.
Altri suggerimenti
È possibile impostare il titolo del pulsante attraverso
[b setTitle:@"Start" forState:UIControlStateNormal];
e per ottenere il titolo (currentTitle è di sola lettura e può essere pari a zero):
[b currentTitle];
A proposito, se si desidera solo per differenziare più pulsanti, si può semplicemente impostare la proprietà tag (un valore intero) dei tasti.
Inoltre, controllare se avete il pulsante specificato come IBOutlet nella classe viewController, e se è collegato correttamente come una presa in Interface Builder?
avrei preferito impostare un determinato tag e confrontare il valore di tag, piuttosto che leggendo il titolo del pulsante poiché avete la possibilità di localizzare la vostra applicazione in cui i titoli dei pulsanti saranno eventualmente essere diversa.