我必须循环调用 MFMailComposeViewController 3 次,例如
for (int i=0; i<4; i++ {
[self presentMyMFMailComposeViewController];
}
问题在于,呈现 MFMailComposeViewController 本身就是一个异步任务,一旦循环第一次调用控制器,它就不会等待电子邮件发送,而是第二次调用,然后第三次调用。
如何让它等待电子邮件发送?
需要实现MFMailComposeViewControllerDelegate,具体如下方法
– mailComposeController:didFinishWithResult:error:
当邮件视图控制器完成时调用此方法,从这里您可以呈现一个新的邮件视图控制器。数一数你用实例变量等显示了多少。
在您的 presentMyMFMailComposeViewController 方法中,您按如下方式设置委托。
MFMailComposeViewController *myMailViewController = ...
myMailViewController.delegate = self;