2011-06-02 93 views
0

我正在构建一个非常简单的应用程序,我想减少其中的编码线,并且我想通过使用一个或两个功能而不是20个。如何简化代码?

该应用程序显示10个按钮。每个按钮都有两个按钮可以显示,都采用相同的操作(发送电子邮件),但每个按钮都有不同的标识,因此它也具有不同的电子邮件内容。如果我为每个按钮做一个函数,它会正常工作,但我知道可以简化它,我只是不知道如何。

有人能指出我正确的方向吗?这是我在做什么,现在在我的方法:

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]; 

回答

1

设置唯一代码(详见标签属性)为每个按钮和检查发件人的标记在一个-sendEmail:方法。你所有的按钮都会调用这个方法。

+0

感谢您的回应!但我应该在哪里申报标签?我这样做,但没有工作: St01e01 =(UIButton *)[self.view viewWithTag:101]; \t Vt01e01 =(UIButton *)[self.view viewWithTag:102]; (101){ \t \t \t [控制器1 setMessageBody:@“Button 1 option 1”isHTML:NO]; [0124] \t \t } \t否则如果(102){ \t \t \t [控制器1 setMessageBody:@ “按钮1选项2” isHTML:NO]; – 2011-06-03 16:41:38

+0

你设置了一个按钮的标签。 myButton.tag = 101(或者,在你的情况下,在Interface Builder中设置它)...然后阅读SENDER的标签:你的方法 – 2011-06-03 17:30:15

+0

中的if(sender.tag == 101)是否需要框架?因为它标记错误:“请求成员'标记'的东西不是一个结构或联盟” – 2011-06-03 21:48:09