按顺序异步调用MFMailComposeViewController

时间:2013-01-17 22:55:38

标签: iphone ios ipad

我必须在循环中调用MFMailComposeViewController 3次,比如

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

问题在于,呈现MFMailComposeViewController本身就是一个异步任务,一旦循环第一次调用控制器,它就不会等待发送电子邮件,而是第二次调用,然后调用第三次。< / p>

如何让它等待发送电子邮件?

1 个答案:

答案 0 :(得分:3)

您需要实现MFMailComposeViewControllerDelegate,特别是以下方法

– mailComposeController:didFinishWithResult:error:

当邮件视图控制器完成时,将调用此方法,从此处可以显示新的邮件视图控制器。使用实例变量等计算您显示的数量。

在presentMyMFMailComposeViewController方法中,您可以按如下方式设置委托。

MFMailComposeViewController *myMailViewController = ...
myMailViewController.delegate = self;