Я пытаюсь отклонить MFMailComposeViewController, но делегат не запущен. Кажется, что это общая проблема, и ответы одинаковы, но они не работают для меня :(. У меня есть кнопка, которая вызывает функцию для отправки почты. Сначала я создаю файл CSV, затем MFMailComposeViewController и прикрепляю CSV-файл на почту. Почта отправляется иногда (контроллер просмотра почты не отклоняет после этого), и кнопка отмены показывает мне возможность удалить или сохранить черновик, но после этого ничего не происходит.
Вот код кнопки:
import UIKit
import MessageUI
class UserInfoViewController: UIViewController, MFMailComposeViewControllerDelegate {
@IBAction func uploadPressed(_ sender: Any) {
let contentsOfFile = "Name,ID,Age,Sex,Time,\n\(name),\(id),\(age),\(sex),\(time)"
let data = contentsOfFile.data(using: String.Encoding.utf8, allowLossyConversion: false)
if let content = data {
print("NSData: \(content)")
}
func configuredMailComposeViewController() -> MFMailComposeViewController {
let emailController = MFMailComposeViewController()
//emailController.mailComposeDelegate = self as? MFMailComposeViewControllerDelegate
emailController.mailComposeDelegate = self
emailController.setToRecipients([""])
emailController.setSubject("CSV File")
emailController.setMessageBody("", isHTML: false)
emailController.addAttachmentData(data!, mimeType: "text/csv", fileName: "registro.csv")
return emailController
}
let emailViewController = configuredMailComposeViewController()
if MFMailComposeViewController.canSendMail() {
self.present(emailViewController, animated: true, completion: nil)
}
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
print("Delegate worked!")
controller.dismiss(animated: true, completion: nil)
}
}
}
Заранее большое спасибо.