Si tratta di codice di esempio:MFMailComposeViewController a Swift non respingere
import UIKit
import MessageUI
class ViewController: UIViewController, MFMailComposeViewControllerDelegate {
@IBAction func showEmail(sender : AnyObject) {
var emailTitle = "Test Email"
var messageBody = "This is a test email body"
var toRecipents = ["[email protected]"]
var mc: MFMailComposeViewController = MFMailComposeViewController()
mc.mailComposeDelegate = self
mc.setSubject(emailTitle)
mc.setMessageBody(messageBody, isHTML: false)
mc.setToRecipients(toRecipents)
self.presentViewController(mc, animated: true, completion: nil)
}
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}
func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError) {
switch result.value {
case MFMailComposeResultCancelled.value:
NSLog("Mail cancelled")
case MFMailComposeResultSaved.value:
NSLog("Mail saved")
case MFMailComposeResultSent.value:
NSLog("Mail sent")
case MFMailComposeResultFailed.value:
NSLog("Mail sent failure: %@", [error.localizedDescription])
default:
break
}
self.dismissModalViewControllerAnimated(true)
// self.dismissViewControllerAnimated(true, completion: nil)
}
}
Quando premo il pulsante, la funzione showemail viene eseguito e viene visualizzato il form per inviare e-mail. Se faccio clic su "Invia", quindi tutto funziona correttamente - viene inviata la posta, quindi viene eseguita la funzione mailComposeController. NSLog visualizza l'etichetta "Posta inviata" e la schermata iniziale riappare.
Se sono nella finestra di dialogo di posta inviare, cliccare "Annulla" pulsante, quindi il dialogo non scompare, la funzione mailComposeController non funziona, due pulsanti - "Send" e "Annulla", divenendo colore grigio e così rimane.
Cosa c'è che non va?
Dannazione :-) Ho già provato centinaia di opzioni diverse! :-) –
Questo bug persiste ?, sto affrontando lo stesso problema in Xcode6.0.1 – BaSha
Il presentViewViewer è il responsabile di chiudere il ViewController presentato, non auto – Yariv