Swift /如何让MFMailComposeViewController消失

时间:2016-03-03 20:20:50

标签: ios swift

我正在通过UIButton从UITextfields发送一封电子邮件,其中包含以下参数。

    let mc: MFMailComposeViewController = MFMailComposeViewController()
    mc.mailComposeDelegate = self
    mc.setSubject("Neue Reservierungsanfrage")
    mc.setMessageBody(messageBody, isHTML: false)
    mc.setToRecipients(["email@live.de"])
    self.presentViewController(mc, animated: true, completion: nil)

无论我是按取消还是发送,电子邮件发送屏幕都不会消失。

如果用户按下“发送”,我怎么能让屏幕消失并按下确认弹出窗口?

非常感谢帮助。

1 个答案:

答案 0 :(得分:1)

您需要使用方法MFMailComposeViewControllerDelegate

实施协议mailComposeController(_:didFinishWithResult:error:)

在此方法中,您可以关闭邮件编辑器视图控制器。但是我不确定是否可以向用户显示确认框,因为此按钮由邮件编辑器视图控制器处理。

设置邮件编辑器对象的委托:

let mc: MFMailComposeViewController = MFMailComposeViewController()
mc.delegate = self
mc.mailComposeDelegate = self
mc.setSubject("Neue Reservierungsanfrage")
mc.setMessageBody(messageBody, isHTML: false)
mc.setToRecipients(["email@live.de"])
self.presentViewController(mc, animated: true, completion: nil)

方法:

func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) {
    controller.dismissViewControllerAnimated(true, completion: nil)
}

不要忘记将MFMailComposeViewControllerDelegate添加到您的班级定义中。