web-dev-qa-db-fra.com

Ajouter une cible pour UIButton - iOS

Tout le monde peut m'aider à ajouter une action pour appeler la méthode suivante à l'aide de UIButton.

-(void)navigatePics:(id)sender andIndex:(NSInteger *)index{}
14
Siddharthan Asokan

Utilisez la méthode button.setTag: (NSInteger) pour ajouter l'index à l'UIButton en tant que balise.

UIButton *button = ...;
[button setTag:1234];
[button addTarget:self action:@selector(navigatePics:) forControlEvents:UIControlEventTouchUpInside];

Puis dans navigPics, lisez la balise.

-(void)navigatePics:(UIButton *)sender
{
 int index = sender.tag;
 // index = 1234;
}
53
CSmith
UIButton *button = [[UIButton alloc] init];
button.tag = 4; //index
[button addTarget:self @selected(buttonDidTap:)];

...
[button release];

-(void)buttonDidTap:(UIButton *)sender{
NSInteger index = sender.tag;
}
2
Tomasz Dubik

Cela devrait faire l'affaire. N'utilisez pas self si vous souhaitez appeler cette méthode sur une autre instance. Dans ce cas, utilisez simplement cette instance à la place de vous-même.

[button addTarget:self action:@selector(navigatePics:andIndex:) forControlEvents:UIControlEventTouchUpInside];
0
John Corbett