-1
我已经创建了一个发送预填充电子邮件的应用程序。邮件将完美发送,但邮件作曲者不会关闭。下面是我的代码。任何帮助表示赞赏。MFMailComposeViewController不会关闭
@IBAction func sendEmail(_ sender: Any)
{
let mailComposeViewController = configuredMailComposeViewController()
if MFMailComposeViewController.canSendMail() {
self.present(mailComposeViewController, animated: true, completion: nil)
} else {
self.showSendMailErrorAlert()
}
}
func configuredMailComposeViewController() -> MFMailComposeViewController {
let subject = "subject"
let body = "body"
let composeVC = MFMailComposeViewController()
composeVC.mailComposeDelegate = self
// Configure the fields of the interface.
composeVC.setToRecipients(["[email protected]"])
composeVC.setSubject(subject)
composeVC.setMessageBody(body, isHTML: false)
return composeVC
}
func showSendMailErrorAlert() {
let sendMailErrorAlert = UIAlertView(title: "Could Not Send Email", message: "Your device could not send e-mail. Please check e-mail configuration and try again.", delegate: self, cancelButtonTitle: "OK")
sendMailErrorAlert.show()
}
// MARK: MFMailComposeViewControllerDelegate Method
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)
}
我已经尝试了多个建议,我在这里找到并没有任何东西似乎工作。
不相关,但您应该在'if'语句内调用'configuredMailComposeViewController'。为什么要创建它,如果你不能发送电子邮件? – rmaddy
添加一个断点以确保正在调用controller.dismiss(animated:true,completion:nil)。 –