Как мне заставить мое приложение распечатать '' E-Mail send '' или '' E-Mail отменено "? - PullRequest
0 голосов
/ 19 июня 2019

У меня есть приложение, которое позволяет мне отправлять электронные письма. Я уже понял, что почтовый контроллер закрывается после ввода на кнопку отправки или отмены. Но мне бы хотелось, чтобы внутри приложения было всплывающее окно «Всплывающее», которое сообщало бы пользователю, отправили ли оно письмо или отменило его.

Закомментированный код был моей попыткой, позволил приложению сказать это, но он не сработал из-за некоторых предупреждений.

    @IBAction func Senden(_ sender: Any) {
        let toRecipients = ["Mail@adress.com"]
        let mc: MFMailComposeViewController =       MFMailComposeViewController()
        mc.mailComposeDelegate = self
        mc.setToRecipients(toRecipients)
        mc.setSubject(FirmaFeld.text!)

        mc.setMessageBody("Firma: \(FirmaFeld.text!) \n\n Kontaktperson:  \(KontaktpersonFeld.text!) \n\n EMail: \(EMailFeld.text!) \n\n Anliegen:  \(NachrichtFeld.text!)", isHTML: false)
        self.present(mc, animated: true, completion: nil)
    }

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



        }




     /*   switch result.rawValue {
        case MFMailComposeResult.cancelled.rawValue:
            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
        }
        // Dismiss the mail compose view controller.
        self.dismiss(animated: true, completion: nil)

    }*/


    @IBAction func dismissKeyboard(_ sender: Any) {
         self.resignFirstResponder()
    }

Я надеюсь, что кто-нибудь может помочь (извините за плохой английский).

1 Ответ

0 голосов
/ 19 июня 2019

Надеюсь, что это поможет вам

Отображение контроллера предупреждений внутри блока завершения.

controller.dismiss(animated: true, completion: {
if result == .cancelled {
        let alertController = UIAlertController(title: "E-Mail not sent!", message: "E-Mail not sent.", preferredStyle: .alert)

        alertController.addAction(UIAlertAction(title: "OK", style: .cancel, handler: { (action: UIAlertAction!) in
        }))

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

То же самое при отправке почты.

...