Swift 3 Como exibir uma tela de confirmação com base na tela de email do MFMailComposeResult

Estou criando um aplicativo que constrói um email e o apresenta em um MFMailComposeViewController para o usuário enviar. Quando o usuário envia ou cancela, desejo que o aplicativo responda com uma mensagem na tela de confirmação apropriada.

Consigo compor o email, descartar a tela de composição e tenho um nome nomeado no IB da visualização de pré-composição à visualização de confirmação. Mas não consigo executar o que segue.

Então, como posso atualizar uma mensagem de texto no destino segue e depois segue para ele.

Como estou tentando aprender o Swift, estou muito interessado em entender como o código funciona, não apenas em obter o código que funciona. Então, eu realmente aprecio qualquer ajuda.

O fluxo de trabalho começa com o usuário tirando uma foto do aplicativo:

    func snapPhoto(){

    if let cameraConnection = sessionOutput.connection(withMediaType: AVMediaTypeVideo) {

        sessionOutput.captureStillImageAsynchronously(from: cameraConnection, completionHandler: { buffer, error in

            let myMessage   = self.buildEmail()
            let myJpg       = AVCaptureStillImageOutput.jpegStillImageNSDataRepresentation(buffer)
            let mapSnap     = (self.myMap == nil) ? nil : UIImagePNGRepresentation(self.myMap!)

            let mail        = self.setupMail(to: myMessage.to, subject: myMessage.subject, body: myMessage.body, myJpg: myJpg!, mapSnap: mapSnap)

            self.presentMailComposer(mail: mail)

        }) // close completionHandler

    } // close if let cameraConnection

} // close func snapPhoto

Que reúne todo o conteúdo da mensagem de email e o passa para:

    func presentMailComposer(mail : MFMailComposeViewController) {

    if MFMailComposeViewController.,canSendMail() {

        self.present(mail, animated: true, completion: nil)

    } else {

        let sendMailErrorAlert = UIAlertController.init(title: "Uh oh!", message: "Unable to send email.", preferredStyle: .alert)
        self.present(sendMailErrorAlert, animated: true, completion: nil)

    } // close if

} // close presentEmailComposer

E isso é acionado quando o usuário toca em "Enviar" de "Cancelar"

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

    switch result.rawValue {

    case MFMailComposeResult.cancelled.rawValue:

        self.performSegue(withIdentifier: "afterEmail", sender: self)
        print("Mail cancelled")

    case MFMailComposeResult.saved.rawValue:

        print("Mail saved")

    case MFMailComposeResult.sent.rawValue:

        print("Mail sent")

    case MFMailComposeResult.failed.rawValue:

        print("Mail sent failure: %@", [error!.localizedDescription])

    default:

        break

    }

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

} // close mailCompose

E é aqui que me encontro perplexo. Posso acessar o MFMailComposeResult, e está correto, mas não consigo descobrir como apresentar a exibição de confirmação, para que fique disponível quando a exibição de composição deslizar.

questionAnswers(2)

yourAnswerToTheQuestion