gpt4 book ai didi

ios - Swift 3.0 迁移后未调用 MFMailComposeViewControllerDelegate 方法

转载 作者:行者123 更新时间:2023-12-01 17:29:06 27 4
gpt4 key购买 nike

我的应用程序具有电子邮件撰写功能,并且在 Swift 2.2 上运行良好。最近我将代码迁移到 Swift 3.0 并遇到了这个问题。在下面分享我的代码片段:

import MessageUI

class ViewController: UIViewController, MFMailComposeViewControllerDelegate {
func sendEmail() {
if MFMailComposeViewController.canSendMail() {
let mail = MFMailComposeViewController()
mail.mailComposeDelegate = self
mail.setToRecipients(["someone@somewhere.com"])
mail.setSubject("Sending you an in-app e-mail...")
mail.setMessageBody("<p>You're so awesome!</p>", isHTML: true)
self.present(mail, animated: true)
} else {
// handle failure
}
}

func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {

controller.dismiss(animated: true)
}

@IBAction func mailClicked(_ sender: AnyObject) {
sendEmail()
}
}

我已将 mailComposeDelegate 设置为 self,将 _ 放入委托(delegate)方法并尝试了在搜索中找到的所有解决方案。但无法解决问题。

任何帮助是极大的赞赏。

最佳答案

这是 Xcode 8 中的一个已知问题。以下解决方法对我有用:

@objc(mailComposeController:didFinishWithResult:error:)
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: NSError?) {
controller.dismiss(animated: true, completion: nil)
}

关于ios - Swift 3.0 迁移后未调用 MFMailComposeViewControllerDelegate 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40259559/

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