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