如何关闭 MFMailComposeViewController?
How to close MFMailComposeViewController?
我想从我的 Swift 应用程序发送一封电子邮件,它运行良好,它发送了电子邮件。
然而,发送电子邮件后,布局并没有退出。我想在发送电子邮件后退出布局。当我按下取消、删除草稿或保存草稿按钮时,我也想要这种行为。
这是我必须发送电子邮件的代码(按下按钮后):
@IBAction func btnSendEmailAction(_ sender: AnyObject) {
let composeVC = MFMailComposeViewController()
composeVC.mailComposeDelegate = self
composeVC.setToRecipients(["mymail@mail.com"])
composeVC.setSubject("Hello!")
composeVC.setMessageBody("Hello World!", isHTML: false)
self.present(composeVC, animated: true, completion: nil)
}
func mailComposeController(controller: MFMailComposeViewController,
didFinishWithResult result: MFMailComposeResult, error: NSError?) {
switch result {
case MFMailComposeResult.cancelled:
controller.dismiss(animated: true, completion: nil)
break
case MFMailComposeResult.sent:
controller.dismiss(animated: true, completion: nil)
break
case MFMailComposeResult.failed:
controller.dismiss(animated: true, completion: nil)
break
default:
break
}
controller.dismiss(animated: true, completion: nil)
}
但是当我按下“取消”或“发送”按钮时布局没有退出。
我知道有很多与此问题相关的问题,但我看了很多问题,这是我可以从其中一些问题中得到的代码。请注意,它们中的大多数都在 Objective 而不是 Swift 中(有时这些方法不存在)。
示例:iPhone: How to Close MFMailComposeViewController?
我的代码中是否遗漏了什么?如何检测删除草稿和保存草稿事件?
提前致谢!
看起来您正在使用 swift 3 而不是使用有效的委托方法。更正的委托方法是这样的:
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
switch result {
case .cancelled:
break
case .saved:
break
case .sent:
break
case .failed:
break
}
dismiss(animated: true, completion: nil)
}
我想从我的 Swift 应用程序发送一封电子邮件,它运行良好,它发送了电子邮件。
然而,发送电子邮件后,布局并没有退出。我想在发送电子邮件后退出布局。当我按下取消、删除草稿或保存草稿按钮时,我也想要这种行为。
这是我必须发送电子邮件的代码(按下按钮后):
@IBAction func btnSendEmailAction(_ sender: AnyObject) {
let composeVC = MFMailComposeViewController()
composeVC.mailComposeDelegate = self
composeVC.setToRecipients(["mymail@mail.com"])
composeVC.setSubject("Hello!")
composeVC.setMessageBody("Hello World!", isHTML: false)
self.present(composeVC, animated: true, completion: nil)
}
func mailComposeController(controller: MFMailComposeViewController,
didFinishWithResult result: MFMailComposeResult, error: NSError?) {
switch result {
case MFMailComposeResult.cancelled:
controller.dismiss(animated: true, completion: nil)
break
case MFMailComposeResult.sent:
controller.dismiss(animated: true, completion: nil)
break
case MFMailComposeResult.failed:
controller.dismiss(animated: true, completion: nil)
break
default:
break
}
controller.dismiss(animated: true, completion: nil)
}
但是当我按下“取消”或“发送”按钮时布局没有退出。
我知道有很多与此问题相关的问题,但我看了很多问题,这是我可以从其中一些问题中得到的代码。请注意,它们中的大多数都在 Objective 而不是 Swift 中(有时这些方法不存在)。
示例:iPhone: How to Close MFMailComposeViewController?
我的代码中是否遗漏了什么?如何检测删除草稿和保存草稿事件?
提前致谢!
看起来您正在使用 swift 3 而不是使用有效的委托方法。更正的委托方法是这样的:
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
switch result {
case .cancelled:
break
case .saved:
break
case .sent:
break
case .failed:
break
}
dismiss(animated: true, completion: nil)
}