1

ループで MFMailComposeViewController を 3 回呼び出す必要があります。

for (int i=0; i<4; i++ {
   [self presentMyMFMailComposeViewController];
}

問題は、MFMailComposeViewController の表示自体が非同期タスクであり、ループが最初にコントローラーを呼び出すとすぐに、電子メールが送信されるのを待たずに 2 回目、3 回目を呼び出すことです。

メールが送信されるのを待つにはどうすればよいですか?

4

1 に答える 1

3

MFMailComposeViewControllerDelegate、具体的には次のメソッドを実装する必要があります

– mailComposeController:didFinishWithResult:error:

このメソッドは、メールビューコントローラーが終了したときに呼び出されます。ここから、新しいメールビューコントローラーを提示できます。インスタンス変数などで表示した数を数えます。

presentMyMFMailComposeViewControllerメソッド内で、デリゲートを次のように設定します。

MFMailComposeViewController *myMailViewController = ...
myMailViewController.delegate = self;
于 2013-01-17T22:58:46.147 に答える