2011-06-02 4 views
0

Je construis une application très simple et je voudrais réduire les lignes de codage, et je voudrais cela en utilisant une ou deux fonctions au lieu de 20.Comment simplifier le code?

L'application affiche 10 boutons. Chaque bouton a deux boutons à afficher, tous les deux avec la même action (envoi d'un email) mais chaque bouton a une identité différente donc il a aussi un contenu d'email différent. Cela fonctionne bien si je fais une fonction pour chaque bouton, mais je sais qu'il est possible de simplifier cela, je ne sais pas comment.

Quelqu'un peut-il me diriger dans la bonne direction? Voilà ce que je fais en ce moment dans mes méthodes:

MFMailComposeViewController *controller1 = [[MFMailComposeViewController alloc] init]; 

controller1.mailComposeDelegate = self; 
if ([MFMailComposeViewController canSendMail]) { 
    [controller1 setToRecipients:[NSArray arrayWithObjects: @"[email protected]", nil]]; 
    [controller1 setSubject:@"Button 1"]; 
    [controller1 setMessageBody:@"The second option form button 1 was selected" isHTML:NO]; 
    [self presentModalViewController:controller1 animated:YES]; 

} 
    [controller1 release]; 

Répondre

1

Définir une étiquette unique (voir la propriété tag) pour chaque bouton et vérifiez l'étiquette de l'expéditeur dans votre un -sendEmail: méthode. Tous vos boutons appellent cette méthode.

+0

merci pour la réponse! mais où dois-je déclarer les tags? Je l'ai fait mais je n'ai pas travaillé: St01e01 = (UIButton *) [self.view viewWithTag: 101]; \t Vt01e01 = (UIButton *) [self.view viewWithTag: 102]; si (101) { \t \t \t [controller1 setMessageBody: @ "Bouton 1 option 1" isHTML: NO]; \t \t \t} else if (102) { \t \t \t [controller1 setMessageBody: @ "Bouton d'option 1 2" ISHTML: NO]; –

+0

Vous définissez l'étiquette d'un bouton. myButton.tag = 101 (ou, dans votre cas, placez-le dans Interface Builder) ... puis lisez la balise SENDER'S: if (sender.tag == 101) dans votre méthode –

+0

at-il besoin d'un cadre ou quelque chose? Parce que ça marque une erreur: "Demande de" tag "membre dans quelque chose pas une structure ou union" –