2010-08-23 13 views
5

Alors, j'ai UISegmentedControl avec:Qu'est-ce qu'un UISegmentedControl retourne à son action sur UIControlEventValueChanged?

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

Je me demandais comment je trouverais ce que le segment a été sélectionné (pour que je puisse faire l'action appropriée). Je sais que c'est quelque chose comme:

@selector(myAction:) mais qu'est-ce qui est envoyé? ie: quand je définis ma méthode, que dois-je définir?

Merci.

Répondre

10

obtenir le point ... deuxième partie de la question

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

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

ah brillant ... mon problème était que j'essayais: 'int selectedIndex = [expéditeur selectedSegmentIndex];' et ne pas l'ajouter à un objet. :) génial, merci beaucoup. –

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

Le sélecteur est un objet UISegmentedControl. Ainsi, vous pouvez différencier deux UISegmentedControl si vous liez une action aux deux.

+0

droit brillant, donc - désolé d'être épais ha, mais qu'en décidant qui segment particulier a été sélectionné (d'autant plus que j'ai momentané: OUI)? merci –

2

sélectionné Il est aussi moyen plus facile:

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