2010-06-22 3 views
0

Je crée actuellement dynamiquement des objets UIButton dans ma vue. J'ai un NSMutableArray contenant des informations à leur sujet (id - label). Je crée ensuite mes objets de vue en faisant un itération sur mon MutableArray.UIButton: gestion de la création dynamique et des événements tactiles

Je suis en train d'utiliser ce code sur mes boutons pour attraper les événements Touche:

[myButton addTarget:self action:@selector(selectedButton:) forControlEvents:UIControlEventTouchUpInside]; 

Ma méthode de selectedButton est appelé avec succès, mais je n'ai aucune idée sur la connaissance avec le bouton ont été touchés.

J'ai essayé de le faire:

-(void)selectedButton:(id)sender {...} 

Mais ne savent pas quoi faire avec l'objet de l'expéditeur.

Merci d'avance pour votre aide!

Répondre

1

Définissez mybutton.tag sur quelque chose, puis recherchez cette variable dans selectedButton:sender.

3

En haut de votre fichier .m, mettre quelque chose comme ceci:

enum { 
    kButtonOne, 
    kButtonTwo 
}; 

Lorsque vous créez vos boutons, faire

myButton.tag = kButtonOne; 

Ensuite, dans votre méthode de bouton sélectionné, faire ce:

-(void)selectedButton:(id)sender { 
    switch (sender.tag) { 
    case kButtonOne: 
     // do something here 
     break; 
    case kButtonTwo: 
     // do something else here 
     break; 
    } 
} 
0
-(void)viewDidLoad{ 

UIButton *button = [UIButton buttonWithType:UIButtonTypeRoundedRect]; 

button.frame = CGRectMake(80.0, 210.0, 40.0, 30.0); 

button.tag=1; 

[button addTarget:self 
      action:@selector(aMethod:) 
forControlEvents:UIControlEventTouchDown]; 

[button setTitle:@"raaz" forState:UIControlStateNormal]; 

[self.view addSubview:button]; 

} 

-(IBAction)aMethod:(id)sender{ 

UIButton *btn=(UIButton *)sender; 

NSLog(@"I have currently Pressed button=%d",btn.tag); 


} 
Questions connexes