#ios #swift #xcode #mfmailcomposeviewcontroller
#iOS #swift #xcode #mfmailcomposeviewcontroller
Вопрос:
В настоящее время я пытаюсь реализовать MFMailComposeViewController
. Все работает нормально, за исключением того, что после отправки электронного письма или нажатия MFMailComposeViewController
кнопки отмена не отключается. Я просмотрел похожие потоки StackOverflow и попытался реализовать эти решения, но они не решили мою проблему. Я чувствую, что проблема может заключаться не в func mailComposeController
, а в остальной части моего кода. Любая помощь будет принята с благодарностью.
Мой код:
if MFMailComposeViewController.canSendMail() {
let vc = MFMailComposeViewController()
vc.delegate = self
vc.mailComposeDelegate = self
vc.setSubject("Contact Us/Feedback")
vc.setToRecipients(["test@gmail.com"])
present(vc, animated: true)
}
else {
if let url = URL(string: "https://www.google.com") {
let safariVC = SFSafariViewController(url: url)
present(safariVC, animated: true, completion: nil)
}
}
func mailComposeController(controller: MFMailComposeViewController,
didFinishWithResult result: MFMailComposeResult, error: NSError?) {
// Dismiss the mail compose view controller.
controller.dismiss(animated: true, completion: nil)
}
}
Спасибо!
Ответ №1:
Изменить
func mailComposeController(controller: MFMailComposeViewController,
didFinishWithResult result: MFMailComposeResult, error: NSError?) {
Для
func mailComposeController(_ controller: MFMailComposeViewController,
didFinishWith result: MFMailComposeResult, error: Error?) {
Комментарии:
1. Кроме того, удалите
vc.delegate = self
, поскольку он ничего не делает.2. Привет, Мэтт, я внедрил это редактирование, однако оно не решает мою проблему. MFMailComposeViewController по-прежнему не отключается. Я также удалил vc.delegate = self Спасибо
3. О, и возьмите весь этот метод, включая обе фигурные скобки, вырежьте его и вставьте на верхний уровень объявления класса. Вы написали его внутри другого метода, где он никогда не может быть вызван.