В моем приложении есть функция создания электронной почты, и оно отлично работает на Swift 2.2. Недавно я перенес код на Swift 3.0 и застрял с этой проблемой. Делюсь своим фрагментом кода ниже:
import MessageUI
class ViewController: UIViewController, MFMailComposeViewControllerDelegate {
func sendEmail() {
if MFMailComposeViewController.canSendMail() {
let mail = MFMailComposeViewController()
mail.mailComposeDelegate = self
mail.setToRecipients(["[email protected]"])
mail.setSubject("Sending you an in-app e-mail...")
mail.setMessageBody("<p>You're so awesome!</p>", isHTML: true)
self.present(mail, animated: true)
} else {
// handle failure
}
}
func mailComposeController(_ controller: MFMailComposeViewController, didFinishWith result: MFMailComposeResult, error: Error?) {
controller.dismiss(animated: true)
}
@IBAction func mailClicked(_ sender: AnyObject) {
sendEmail()
}
}
Я установил для mailComposeDelegate значение self, поставил _ в методе делегата и попробовал все решения, найденные при поиске. Но решить вопрос не смог.
Любая помощь приветствуется.