3

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

-(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];     
  });
}

ありがとう

4

1 に答える 1

-1

どうぞ!

-(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];
}
于 2012-08-07T00:49:50.283 に答える