gpt4 book ai didi

swift - 单击取消或删除草稿后关闭邮件 View Controller

转载 作者:可可西里 更新时间:2023-11-01 01:21:45 25 4
gpt4 key购买 nike

我在我的应用程序中创建了一个邮件 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)
}

最佳答案

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

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

class ViewController: UIViewController, MFMailComposeViewControllerDelegate {

override func viewDidLoad() {
super.viewDidLoad()
}

@IBAction func sendEmailButtonTapped(sender: AnyObject) {
let mailComposeViewController = configuredMailComposeViewController()
if MFMailComposeViewController.canSendMail() {
self.present(mailComposeViewController, animated: true, completion: nil)
} else {
self.showSendMailErrorAlert()
}
}

func configuredMailComposeViewController() -> MFMailComposeViewController {
let mailComposerVC = MFMailComposeViewController()
mailComposerVC.mailComposeDelegate = self // Extremely important to set the --mailComposeDelegate-- property, NOT the --delegate-- property
mailComposerVC.delegate = self
mailComposerVC.setToRecipients(["someone@somewhere.com"])
mailComposerVC.setSubject("Sending you an in-app e-mail...")
mailComposerVC.setMessageBody("Sending e-mail in-app is not so bad!", isHTML: false)

return mailComposerVC
}

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?) {
controller.dismiss(animated: true, completion: nil)
}
}

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

关于swift - 单击取消或删除草稿后关闭邮件 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43655392/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com