gpt4 book ai didi

ios - 在 tableView 中实现 MailComposeController

转载 作者:行者123 更新时间:2023-11-28 10:57:06 25 4
gpt4 key购买 nike

我已经在 TableView 中创建了设置页面。当我点击第 0 行时,调用 UIActivityViewController。当我点击第 2 行时,将调用 MailComposeController。

MailComposeController 已调用,但当我点击邮件屏幕上的取消或发送按钮时它不起作用。

代码如下。

func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

if indexPath.row == 0 {

let message = "Hey download my app [LINK]"
let shareView = UIActivityViewController(activityItems: [message], applicationActivities: nil)
self.present(shareView, animated: true, completion: nil)

} else if indexPath.row == 1 {
let mailCompose = MFMailComposeViewController()

mailCompose.mailComposeDelegate = self

mailCompose.setToRecipients(["address@gmail.com"])

mailCompose.setSubject("feedback")

mailCompose.setMessageBody("text", isHTML: false)

if MFMailComposeViewController.canSendMail()

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

else{

print("error...!")

}
}



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

controller.dismiss(animated: true, completion: nil)

}

最佳答案

您必须将委托(delegate)方法放在 ViewController 中,而不是放在 tableView:didSelectRowAt 方法中:

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

关于ios - 在 tableView 中实现 MailComposeController,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42710498/

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