2016-08-05 56 views
0

Ich mache gerade eine App fertig und teste es auf einem physischen Gerät. Gerade als ich dachte, dass ich die Ziellinie überquerte, um mich dem App Store zu unterwerfen, stieß ich auf ein Problem mit den Tasten MFMailComposeViewController'ssend und cancel. Ich habe hier viele Antworten gefunden, aber keiner von ihnen scheint mich über die Ziellinie zu bringen.Ändern der Textfarbe auf den Send/Cancel-Tasten auf MFMailComposeViewController

Die folgenden Methoden funktionieren, um E-Mails zu senden, aber unabhängig davon, was ich mache, bleibt die Farbe der Send/Cancel-Tasten die blaue Standardfarbe. Irgendwelche Vorschläge, um diese Situation zu beheben, werden sehr geschätzt.

Vielen Dank!

@IBAction func sendFeedbackEmail(sender: AnyObject) { 
     feedbackButton.pop() 
     print("sendFeedbackEmail called") 
     let mailComposeViewController = configuredMailComposeViewController() 
     // mailComposeViewController.navigationBar.translucent = false 
     // mailComposeViewController.navigationBar.barTintColor = UIColor.whiteColor() 
     // mailComposeViewController.navigationItem.rightBarButtonItem?.tintColor = UIColor.whiteColor() 
     // mailComposeViewController.navigationItem.leftBarButtonItem?.tintColor = UIColor.whiteColor() 
     // UIBarButtonItem.appearance().tintColor = UIColor.whiteColor() 

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

    func configuredMailComposeViewController() -> MFMailComposeViewController { 
     let mailComposerVC = MFMailComposeViewController() 
     mailComposerVC.mailComposeDelegate = self 
     // UIBarButtonItem.appearance().tintColor = UIColor.whiteColor() 
     // UINavigationBar.appearance().barTintColor = UIColor.whiteColor() // optional to change bar backgroundColor 
     mailComposerVC.navigationBar.translucent = false 
     mailComposerVC.navigationBar.barTintColor = UIColor.whiteColor() 
     mailComposerVC.setToRecipients(["[email protected]"]) 
     mailComposerVC.setSubject("Feedback") 

     return mailComposerVC 
    } 

Antwort

1

Hier ist die Antwort. Ich hoffe, Sie verwenden nicht baseViewController für UIViewController.

@IBAction func sendFeedbackEmail(sender: AnyObject) { 
    feedbackButton.pop() 
    print("sendFeedbackEmail called") 
    let mailComposeViewController = configuredMailComposeViewController() 

    if MFMailComposeViewController.canSendMail() { 

     mailComposeViewController.navigationBar.tintColor = UIColor.redColor() 

     self.presentViewController(mailComposeViewController, animated: true, completion: nil) 

    } else { 
     self.showSendMailErrorAlert() 
    } 
} 
2

Swift 3,0

mailComposeViewController.navigationBar.tintColor = UIColor.red