gpt4 book ai didi

ios - MFMailComposeViewController View 不会第二次关闭

转载 作者:搜寻专家 更新时间:2023-11-01 06:16:43 26 4
gpt4 key购买 nike

我有一个我认为是独特的问题。我无法关闭我的电子邮件窗口。我正在使用 Xcode 8。

电子邮件在我第一次打开时正确关闭,但如果我再次打开它则不会。如果我按“取消”,它不会给我“删除草稿”的选项。如果我按“发送”,电子邮件已发送,但窗口不会关闭。

我的代码如下。 mailComposeController 第一次被正确调用,但它永远不会被第二次调用。有人对我缺少的东西有任何想法吗?

let mail = MFMailComposeViewController()
func sendEmail(body: String, subject: String) {
if MFMailComposeViewController.canSendMail() {
mail.mailComposeDelegate = self

mail.setSubject(subject)
mail.setMessageBody("\(body)", isHTML: false)

if let data = (body as NSString).data(using: String.Encoding.utf8.rawValue){
//Attach File
mail.addAttachmentData(data, mimeType: "text/plain", fileName: "data.txt")
}

present(mail, animated: true)
} else {
// show failure alert
}
}

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

最佳答案

每次都需要创建一个新的MFMailComposeViewController。将你的 mail 声明移动到 sendEmail 中工作......

func sendEmail(body: String, subject: String) {
if MFMailComposeViewController.canSendMail() {

// Create a new MFMailComposeViewController…
let mail = MFMailComposeViewController()

mail.mailComposeDelegate = self

mail.setSubject(subject)
mail.setMessageBody("\(body)", isHTML: false)

if let data = (body as NSString).data(using: String.Encoding.utf8.rawValue){
//Attach File
mail.addAttachmentData(data, mimeType: "text/plain", fileName: "data.txt")
}

present(mail, animated: true)
} else {
// show failure alert
}
}

至于为什么……?

关于ios - MFMailComposeViewController View 不会第二次关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43128688/

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