2010-10-21 7 views
2

Avec une boucle, j'ajoute UIImageView à un UIScrollView. J'ai besoin d'ajouter un paramètre supplémentaire addTarget, donc quand je clique, je peux enregistrer l'index.cacao UIImageView addTarget avec paramètre supplémentaire

[imageButton addTarget:self action:@selector(buttonPushed:) 
     forControlEvents:UIControlEventTouchUpInside]; 


-(IBaction) buttonPushed: (int) index 
{ 
    NSLog(@"%d",index); 
} 

Comment puis-je y parvenir?

Répondre

2

Lorsque vous ajoutez une cible, la méthode en cours d'appel peut n'avoir aucun argument (par exemple buttonPushed) ou en avoir une (buttonPushed:) qui est le contrôle envoyant l'événement (dans ce cas votre bouton). Si vous voulez un index, ou toute autre valeur, vous devez le définir sur le bouton envoyant l'événement. Par exemple, lorsque vous configurez les boutons:

myButtons = [NSArray arrayWithObjects:myFirstButton, mySecondButton, nil]; 
[myFirstButton addTarget:self action:@selector(buttonPushed:) 
    forControlEvents:UIControlEventTouchUpInside]; 
[mySecondButton addTarget:self action:@selector(buttonPushed:) 
    forControlEvents:UIControlEventTouchUpInside]; 

et mettre en œuvre votre action

- (IBaction)buttonPushed:(UIButton *)button 
{ 
    NSLog(@"%d",[myButtons indexOfObject:button]); 
} 
Questions connexes