И спасибо @LeoDabus за предложенное улучшение кода. Это также хорошо работает.
я есть то, что я считаю, это уникальная проблема. У меня проблемы с получением окна электронной почты для отклонения. Я использую Xcode 8.
В первый раз, когда я открываю письмо, оно отклоняется правильно, но если я его открою снова, оно не будет. Если я нажимаю «Отмена», это не дает мне возможность «Удалить черновик». Если я нажимаю «Отправить», электронное письмо отправляется, но окно не закрывается.
Мой код ниже.mailComposeController
вызывается правильно в первый раз, но никогда не вызывается во второй раз. У кого-нибудь есть идеи о том, что мне не хватает?
let mail = MFMailComposeViewController()
func sendEmail(body: String, subject: String) {
if MFMailComposeViewController.canSendMail() {
mail.mailComposeDelegate = self
mail.setSubject(subject)
mail.setMessageBody("\(body)", isHTML: false)
if let data = (body as NSString).data(using: String.Encoding.utf8.rawValue){
//Attach File
mail.addAttachmentData(data, mimeType: "text/plain", fileName: "data.txt")
}
present(mail, animated: true)
} else {
// show failure alert
}
}
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
controller.dismiss(animated: true, completion: nil)
}