2010-03-11 4 views
20

Je possède ce code:Comment ajouter un bouton à une feuille UIAction existante?

UIActionSheet *actionSheet = [[[UIActionSheet alloc] 
       initWithTitle:@"Illustrations" 
       delegate:self 
       cancelButtonTitle:@"Cancel" 
       destructiveButtonTitle:nil 
       otherButtonTitles: @"ABC", @"XYZ", 
       nil] autorelease]; 
UIImage *image = // whatever, snip 
if (image != nil) 
{ 
    [actionSheet addButtonWithTitle:@"LMNOP"]; 
} 

et il fait un excellent travail d'ajouter ma touche LMNOP conditionnelle.

... APRÈS le bouton d'annulation.

Comment puis-je construire ma feuille d'action avec un bouton conditionnel? Malheureusement, je ne peux pas faire:

UIActionSheet *actionSheet = [[[UIActionSheet alloc] 
     // ... etc. 
     otherButtonTitles: someMutableArray 
     // ... etc. 

parce que cela aiderait certainement.

Des idées?

Merci!

Répondre

53

Vous pouvez ajouter tous les boutons après la méthode init.

UIActionSheet* sheet = [[[UIActionSheet alloc] init] autorelease]; 
sheet.title = @"Illustrations"; 
sheet.delegate = self; 
[sheet addButtonWithTitle:@"ABC"]; 
[sheet addButtonWithTitle:@"XYZ"]; 
if (condition) 
    [sheet addButtonWithTitle:@"LMNOP"]; 
sheet.cancelButtonIndex = [sheet addButtonWithTitle:@"Cancel"]; 
+3

Aha! J'avais raté le sheet.cancelButtonIndex = ... part; C'est ce dont j'avais besoin pour compléter l'image. Merci! – Olie

+0

Fonctionne également avec 'sheet.destructiveButtonIndex'. – zekel

-4

im codage dans iOS 4 et ceci est la méthode qui est utilisée. Vous venez d'ajouter le titre que vous voulez pour le bouton dans les autres sections de bouton.

UIActionSheet *phoneActionSheet = [[UIActionSheet alloc] 
              initWithTitle:@"Do you want to call or text this person?" 
              delegate:self 
              cancelButtonTitle:@"Cancel" 
              destructiveButtonTitle:@"Call"            
              otherButtonTitles:@"Text",nil]; 
Questions connexes