MFMailComposeViewController 返回和发送按钮不起作用

MFMailComposeViewController back and send button not working

我尝试使用 MFMailComposeViewController 在我的应用程序中发送电子邮件。

let email = "..."

let mailComposer = MFMailComposeViewController()

mailComposer.mailComposeDelegate = self                
mailComposer.setToRecipients([email])

self.navigationController?.present(mailComposer, animated: true)

在 运行 我的应用程序之后,作曲家屏幕显示,但 cancelsend 按钮未显示。我尝试了很多可能的解决方案,如在两个导航控制器中更改 tintColor。例如:

mailComposer.navigationBar.tintColor = .red

但 "issue" 仍然存在。

有什么想法吗?

请尝试这些代码

class TechSupportVC: UIViewController, MFMailComposeViewControllerDelegate {
    let composeVC = MFMailComposeViewController()

override func viewDidLoad() {
    super.viewDidLoad()

    composeVC.mailComposeDelegate = self
    composeVC.setToRecipients(["desiredEmail@gmail.com"])
    composeVC.setSubject("My message")
}

func mailComposeController(_ controller: MFMailComposeViewController,
                                   didFinishWith result: MFMailComposeResult,
                                   error: Swift.Error?) {
            controller.dismiss(animated: true, completion: nil)
        }

@IBAction func sendPressed(_ sender: Any) {
    guard MFMailComposeViewController.canSendMail() else {
        showMailServiceErrorAlert()
        return
    }

    composeVC.setMessageBody("Test credentials: \(firstAndLastNameTextField.text!)\nPhone: \(numberTextField.text!)\n\n\(messageTextView.text!)", isHTML: false)

    self.present(composeVC, animated: true, completion: nil)
}

mailComposeDelegate 应该继承自 UIViewController。 在其他情况下,关闭 MFMailComposeViewController 不起作用并崩溃。 好像是 Apple bug