我在我的应用程序中创建了一个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)
}
答案 0 :(得分:2)
首先,我们需要导入MessageUI模块。
其次,我们需要指定View Controller符合MFMailComposeViewControllerDelegate协议。稍后,我们实际上将实现此协议概述的方法,这将允许我们在用户完成发送电子邮件或取消发送电子邮件之后使电子邮件编辑器屏幕消失。 试试这个..
#include <stdio.h>
答案 1 :(得分:0)
只需将MFMailComposeViewControllerDelegate
添加到类声明中即可。示例:
class ViewController: UIViewController, MFMailComposeViewControllerDelegate {
...
}