2011-06-02 58 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