单击“取消”或“删除草稿”后关闭邮件视图控制器

时间:2017-04-27 10:38:42

标签: swift xcode email

我在我的应用程序中创建了一个Mail Controller,它运行正常,发送部分也很好。但是,当我点击“取消”或“删除草稿”时,窗口不会关闭,它基本上卡在电子邮件屏幕上。

我尝试搜索,所有修复都无效。这是我的代码。

@IBAction func btnEmail(_ sender: Any)
    {

    let mailCompose = MFMailComposeViewController()
    mailCompose.mailComposeDelegate = self

    mailCompose.setToRecipients(["issam.barakat@hct.ac.ae"])
    mailCompose.setSubject("Amazing Health App!")
    mailCompose.setMessageBody("This application is amazing, keep it up!", isHTML: false)

    if MFMailComposeViewController.canSendMail()
    {
        self.present(mailCompose, animated: true, completion: nil)
    }


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

        // Dismiss the mail compose view controller.
        controller.dismiss(animated: true, completion: nil)
    }

2 个答案:

答案 0 :(得分:2)

首先,我们需要导入MessageUI模块。

其次,我们需要指定View Controller符合MFMailComposeViewControllerDelegate协议。稍后,我们实际上将实现此协议概述的方法,这将允许我们在用户完成发送电子邮件或取消发送电子邮件之后使电子邮件编辑器屏幕消失。 试试这个..

#include <stdio.h> 

参考https://www.andrewcbancroft.com/2014/08/25/send-email-in-app-using-mfmailcomposeviewcontroller-with-swift/

答案 1 :(得分:0)

只需将MFMailComposeViewControllerDelegate添加到类声明中即可。示例:

class ViewController: UIViewController, MFMailComposeViewControllerDelegate {
     ...
}