2012-04-27 17 views
3

MFMailComposeViewControllerの使用に問題があります。ここでは、デバイスで実行しようとしたサンプルコードを示します。私は意図的に5秒の遅延を追加しました(添付ファイルのダウンロードをシミュレートするだけです)。その後、アプリケーションは "メール"コントローラを提示します。遅れている間に、ホームボタンをクリックすると、アプリがバックグラウンドで実行され、5秒前にアプリが再開されると、件名フィールドは空白になり、メッセージ本文には「メッセージ1」ではなく「メッセージ2」 5秒後にアプリを最小化してアプリを再開すると、件名は表示されませんが、本文は「メッセージ1」ではなく「メッセージ2」になります。あなたは私の行動を理解するのを助けてください。MFMailComposeViewControllerを使用している問題

-(void) func:(MFMailComposeViewController *) mail 
{ 
    [mail setMessageBody:@"message 2" isHTML:NO]; 
    [self presentModalViewController:mail animated:YES];  
} 

- (IBAction)action:(id)sender 
{ 
    MFMailComposeViewController * mail = [[MFMailComposeViewController alloc] init]; 
    [mail setMailComposeDelegate:self]; 
    [mail setMessageBody:@"message 1" isHTML:NO]; 
    [mail setSubject:@"subject 1"]; 

    dispatch_async(dispatch_get_main_queue(), ^{  
     [self performSelector:@selector(func:) withObject:mail afterDelay:5];  
    }); 
} 

おかげでここに行く

答えて

0

-(IBAction)email { 
    MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init]; 
    [composer setMailComposeDelegate:self]; 
    if ([MFMailComposeViewController canSendMail]) { 
     [composer setToRecipients:[NSArray arrayWithObjects:@"", nil]]; 
     [composer setSubject:@""]; 
     [composer setMessageBody:@"" isHTML:NO]; 
     [composer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 
     [self presentModalViewController:composer animated:YES]; 
     [composer release]; 
    } 
    else 
     [composer release]; 
} 
関連する問題