【发布时间】:2018-06-01 18:46:24
【问题描述】:
我有一个 MFMailComposeViewController 设置并显示如下:
class MyViewController: UIViewController {
// MARK: - Properties
let composeViewController = MFMailComposeViewController()
// MARK: - Actions
@IBAction func didTapSendInEmailButton() {
composeViewController.mailComposeDelegate = self
composeViewController.setToRecipients([Constants.contactRecipientEmail])
composeViewController.setSubject(Constants.contactSubject)
composeViewController.setMessageBody(Constans.body, isHTML: false)
present(composeViewController, animated: true, completion: nil)
}
}
// MARK: - MFMailComposeViewControllerDelegate
extension MyViewController: MFMailComposeViewControllerDelegate {
private func mailComposeController(_ controller: MFMailComposeViewController,
didFinishWith result: MFMailComposeResult,
error: Error?) {
switch result {
case .sent:
print("Email sent")
case .saved:
print("Draft saved")
case .cancelled:
print("Email cancelled")
case .failed:
print("Email failed")
}
controller.dismiss(animated: true, completion: nil)
}
}
我遇到了这个问题:
- 按 Compose 上的“发送”后,不会调用 MFMailComposeViewControllerDelegate。
我可能缺少什么?
我无法将 mailComposeController 声明为公开:
【问题讨论】:
-
可能没有直接关系,但在尝试使用邮件编辑器之前总是使用
canSendMail()。 -
谢谢@rmaddy 我有 - 但它不包括在这里,因为它与我的问题无关,事实上作曲家是按预期呈现的
-
不知道你的问题在哪里
-
这里可能的错字:Constans.body
-
除了
Swift.Error之外,你没有私有类型Error吗?图片中的错误消息表明MFMailComposeViewController、MFMailComposeResult或Error三种类型中的任何一种都是私有类型。
标签: ios swift mfmailcomposeviewcontroller