Définissez la propriété tag
sur des valeurs différentes lorsque vous affichez l'alerte. C'est juste un nombre entier et peut être interrogé dans la méthode callback/delegate.
Voici un exemple (en utilisant un ActionSheet plutôt que d'un AlertView, mais le principe est exactement le même):
UIActionSheet *actionSheet = [[UIActionSheet alloc] initWithTitle:@"Title"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:@"Some option", nil];
actionSheet.actionSheetStyle = UIActionSheetStyleDefault;
actionSheet.tag = 10;
[actionSheet showInView:self.view];
[actionSheet release];
Puis dans votre sélection:
-(void)actionSheet:(UIActionSheet *)actionSheet clickedButtonAtIndex:(NSInteger)buttonIndex {
switch (actionSheet.tag) {
case 10:
// do stuff
break;
case 20:
// do other stuff
break;
}
}
Bien sûr, vous devriez utilisez des constantes plutôt que des valeurs littérales, des chaînes localisées, etc., mais c'est l'idée de base.
Je comprends ce qui signifie que je veux définir la valeur de l'étiquette de bouton, mais je ne vois pas d'affichage d'alerte avoir une propriété est tag, peut montrer le code en détail –
tag est une propriété de UIView, dont UIAlertView (et, pour UIButton) est une sous-classe, donc il l'a. – executor21
J'ai utilisé un iVar pour cela, qui après avoir lu votre réponse, était stupide! Merci. –