如何closuresMFMailComposeViewController?
我想从我的Swift应用程序发送电子邮件,它运作良好,它发送电子邮件。
不过,发送邮件后,布局不会退出。 我想在发送电子邮件后退出布局。 我也想要这样的行为,当我按下取消,删除草稿或保存草稿button。
这是我必须发送电子邮件的代码(按下button之后):
@IBAction func btnSendEmailAction(_ sender: AnyObject) { let composeVC = MFMailComposeViewController() composeVC.mailComposeDelegate = self composeVC.setToRecipients(["mymail@mail.com"]) composeVC.setSubject("Hello!") composeVC.setMessageBody("Hello World!", isHTML: false) self.present(composeVC, animated: true, completion: nil) } func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) { switch result { case MFMailComposeResult.cancelled: controller.dismiss(animated: true, completion: nil) break case MFMailComposeResult.sent: controller.dismiss(animated: true, completion: nil) break case MFMailComposeResult.failed: controller.dismiss(animated: true, completion: nil) break default: break } controller.dismiss(animated: true, completion: nil) }
但是当按下“取消”或“发送”button时,布局不会退出。
我知道这个问题有很多相关的问题,但我看了很多,这是我可以从其中一些混合的代码。 请注意,他们大部分是在目标而不是Swift(有时方法不存在)。
例如: iPhone:如何closuresMFMailComposeViewController?
我错过了我的代码? 如何检测删除草稿和保存草稿事件?
提前致谢!
看起来像你正在使用SWIFT 3,而不是使用有效的委托方法。 更正的委托方法是这样的:
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) { switch result { case .cancelled: break case .saved: break case .sent: break case .failed: break } controller.dismiss(animated: true, completion: nil) }