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];
});
}
ありがとう