2010-08-23 1 views
5

Così, ho un UISegmentedControl con:Cosa restituisce un UISegmentedControl alla sua azione su UIControlEventValueChanged?

[control addTarget:self action:@selector(myAction) forControlEvents:UIControlEventValueChanged];

Basta chiedersi come avrei scoprire che cosa è stato selezionato segmento (in modo da poter fare l'azione appropriata). So qualcosa del genere:

@selector(myAction:) ma cosa viene inviato? cioè: quando definisco il mio metodo cosa devo definire?

Grazie.

risposta

10

ottenere l'elemento selezionato ... seconda parte della domanda

-(IBAction) myAction:(id)sender{ 
    NSLog(@"myAction",nil); 

    UISegmentedControl * control = sender; 
    int selectedIndex = [control selectedSegmentIndex]; 
} 
+0

ah geniale ... il mio problema era che stavo provando: 'int selectedIndex = [mittente selectedSegmentIndex];' e non aggiungendolo a un oggetto. :) brillante, grazie mille. –

2
- (IBAction)myAction:(id)selector; 

selector è un oggetto UISegmentedControl. Pertanto, è possibile dividere due UISegmentedControl se si vincola un'azione a entrambi.

+0

destra brillante, così - mi dispiace di essere ettari di spessore, ma che dire di decidere quale è stato selezionato un particolare segmento (soprattutto perché ho momentaneo: SÌ)? grazie –

2

C'è anche modo più semplice:

-(IBAction) myAction:(UISegmentedControl*)control { 
    NSLog(@"selected index %d", control.selectedSegmentIndex); 
}