gpt4 book ai didi

ios - swift 2 : Email Cancel Button Stops Working After Second Try on a Table View

转载 作者:行者123 更新时间:2023-12-01 17:37:43 25 4
gpt4 key购买 nike

我正在使用一个表格 View ,其中包含一个显示“向我们发送反馈”的单元格。它打开电子邮件应用程序,其中包含要发送的预设信息。我可以发送电子邮件和/或取消它,但是当我第一次取消它时,停留在表格 View 上,再次点击单元格以打开电子邮件,我无法再次取消它。它只是停留在电子邮件 View 上。

建议?

我的代码如下:

import UIKit
import MessageUI

class FeedbackViewController: UITableViewController, MFMailComposeViewControllerDelegate {

let mailComposerVC = MFMailComposeViewController()

override func viewDidLoad() {
super.viewDidLoad()

// Uncomment the following line to preserve selection between presentations
// self.clearsSelectionOnViewWillAppear = false

// Uncomment the following line to display an Edit button in the navigation bar for this view controller.
// self.navigationItem.rightBarButtonItem = self.editButtonItem()
}

override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {

if indexPath.section == 0 && indexPath.row == 0
{
let alertController = UIAlertController(title: "Rate Us", message: "\nAre you enjoying our app? Please rate us in the app store!\n\nElse if you know of ways we can make our app better, please send us feedback so we can improve the experience for you!\n\nThank you!\n\nTimmy Caish", preferredStyle: .Alert)

alertController.addAction(UIAlertAction(title: "Rate on iTunes", style: .Default, handler: {
(action: UIAlertAction!) -> Void in
UIApplication.sharedApplication().openURL((NSURL(string: "http://google.com")!))
print("Rate us alert button worked.")
print("Send to iTunes")
}))

alertController.addAction(UIAlertAction(title: "Send Us Feedback", style: .Default, handler: {
(action: UIAlertAction!) in
print("Rate Us feeback button worked.")
let mailComposeViewController = self.configureMailComposeViewController()
if MFMailComposeViewController.canSendMail()
{
self.presentViewController(mailComposeViewController, animated: true, completion: nil)
}
else
{
self.showSendMailErrorAlert()
}
}))

alertController.addAction(UIAlertAction(title: "Cancel", style: .Default, handler: { (action: UIAlertAction) in
print("Rate us cancel button worked.")
print("Rate us")
}))

presentViewController(alertController, animated: true, completion: nil)
}


if indexPath.section == 0 && indexPath.row == 1
{
let mailComposeViewController = configureMailComposeViewController()

if MFMailComposeViewController.canSendMail()
{
self.presentViewController(mailComposeViewController, animated: true, completion: nil)
}
else
{
self.showSendMailErrorAlert()
}

print("Send us feedback")
}

}

func configureMailComposeViewController() -> MFMailComposeViewController {

mailComposerVC.mailComposeDelegate = self

mailComposerVC.setToRecipients(["developer.timmy@gmail.com"])
mailComposerVC.setSubject("Weather Simplicity Feedback")
mailComposerVC.setMessageBody("Hello,\n\nI would like to share the following feedback...\n\n", isHTML: false)

return mailComposerVC

}

func showSendMailErrorAlert() {

let sendMailErrorAlert = UIAlertController(title: "Error", message: "Your device could not send the email. Check your email configurations and try again.", preferredStyle: UIAlertControllerStyle.Alert)
let okay = UIAlertAction(title: "Okay", style: UIAlertActionStyle.Default, handler: nil)
sendMailErrorAlert.addAction(okay)
self.presentViewController(sendMailErrorAlert, animated: true, completion: nil)
}

func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) {

switch result {

case MFMailComposeResultCancelled:
print("Cancelled mail")
break
case MFMailComposeResultSent:
print("Message sent")
break
default:
break
}

self.dismissViewControllerAnimated(true, completion: nil)

}

}

最佳答案

仅当您在 didSelectRow 中而不是在创建 View Controller 时才尝试创建新的 mailViewController。这将确保它每次都是干净的,除非需要,否则不会创建它,并且可以解决第二次取消不起作用的问题。

关于ios - swift 2 : Email Cancel Button Stops Working After Second Try on a Table View,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34644928/

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