0

我是相當新到iOS所以請裸與我,如果我是特別緻密的電子郵件。我正在構建我的第一個應用程序的最後階段,我正在嘗試實施自動填充的電子郵件。我已經得到了emailviewcontroller在一個單獨的測試環境中彈出到位正確的,但我不能工作如何字符串添加到郵件正文中。基本上我有gui的根控制器上的三個按鈕,設置三個字符串的值。我想要的是讓這三個字符串在消息體中重現(如果可能,用逗號分隔)。這是我的代碼到目前爲止。任何幫助將不勝感激。由於如何添加的NSString的使用setMessageBody

-(IBAction)displayComposerSheet 
    { 

    NSArray *recipient = [NSArray arrayWithObjects:@"[email protected]", nil]; 

    if([MFMailComposeViewController canSendMail]) 
    { 
      MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc]    init]; 
     mailViewController.mailComposeDelegate = self; 
     [mailViewController setSubject:@"Place holder ... this is a test subject"]; 
     [mailViewController setMessageBody: isHTML:NO]; 
     [mailViewController setToRecipients:recipient]; 


     [self presentModalViewController:mailViewController animated:YES]; 
    } 
    else 
     NSLog(@"Device is unable to send email in its current state"); 

    } 

    -(void)mailComposeController:(MFMailComposeViewController *)controller  didFinishWithREsult:(MFMailComposeResult)result error:(NSError *)error 
{ 
    [self dismissModalViewControllerAnimated:YES]; 
} 
- (IBAction)addString1:(id)sender { 

    NSString *string1; 
    string1 = @"teststring1"; 

} 

- (IBAction)addString2:(id)sender { 

    NSString *string2; 
    string2 = @"teststring2"; 
} 

- (IBAction)addString3:(id)sender { 
    NSString *string3; 
    string3 = @"teststring3"; 
} 

回答

1

首先,你要在你的.h文件中聲明你的字符串,這樣就可以在整個.M

@interface ViewController : UIViewController 
{ 
    NSString *string1; 
    NSString *string2; 
    NSString *string3; 
} 

然後在郵件撰寫你會使用它們使用格式化字符串,以顯示你的序列串(由%@轉義)

[mailViewController setMessageBody:[NSString stringWithFormat:@"%@, %@, %@",string1,string2,string3] isHTML:NO]; 

當然,在你的頭文件中聲明你的字符串後,就沒有必要在當地宣佈他們,所以改變你的IBActio ns到這個樣子:

- (IBAction)addString1:(id)sender 
    { 
     string1 = @"teststring1"; 
    } 

    - (IBAction)addString2:(id)sender 
    { 
     string2 = @"teststring2"; 
    } 

    - (IBAction)addString3:(id)sender 
    { 
     string3 = @"teststring3"; 
    } 

此外,爲了避免(空)不需要的情況下被插入到郵件正文中,我建議你給這些字符串在viewDidLoad中的初始空白值。這種方式將開始沒有任何內容,但他們不會是零。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    string1 = @""; 
    string2 = @""; 
    string3 = @""; 
} 
+0

啊輝煌,謝謝大家!有沒有辦法在運行時根據用戶輸入在.h中分配這些字符串? – Refllux

+0

@Refllux我向你展示的方式將聲明字符串並在應用完成加載時實例化它們,然後一旦用戶按下按鈕,它們就會填充你的內容。如果我的回答幫你,請不要忘記,以紀念它通過點擊「對勾」旁邊,我的帖子是正確的! –

+0

它當然,非常感謝,說真的,解決了一個問題,我已經有一段時間。再次感謝! – Refllux

相關問題