使用MFMailComposeViewController发送电子邮件后解除模态视图控制器

时间:2017-12-28 23:56:12

标签: swift mfmailcomposeviewcontroller mfmailcomposer

我有一个以模态方式呈现的视图控制器,让人们注册然后调用https的简报。邮件发送后,我希望能够在电子邮件窗口中单击发送后关闭模态视图控制器。这可能吗?

这被错误地标记为重复,因为我的代码结构如下:

CustomViewController调用ModalViewController ModalViewController调用MailComposer 用户点击发送后,ModalViewController需要被解雇。

1 个答案:

答案 0 :(得分:0)

检查mailComposeController(_:didFinishWith:error:)MFMailComposeResult后,您应该在sent中解除控制器。

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
    controller.dismiss(animated: true)

    if result == .sent {
        dismiss(animated: true)
    }
}

请记住,您应该设置邮件撰写视图控制器的委托,并且您的视图控制器应符合MFMailComposeViewControllerDelegate协议:

class CustomViewController: UIViewController, MFMailComposeViewControllerDelegate {
    fileprivate var mailComposeVc: MFMailComposeViewController!
    [...]

    func someFunc() {
        mailComposeVc.delegate = self
    }
}