MFMailComposeViewController не редактируется в iOS 8 Xcode 6

Для отображения листа электронной почты я использую следующий код. Появляется лист, но я не могу редактировать тему, тело. Я даже не могу нажать кнопки отмены или отправки. Вот моя реализация:

class PeopleListTableViewController: UITableViewController,SWTableViewCellDelegate,UINavigationControllerDelegate,MFMailComposeViewControllerDelegate, NSXMLParserDelegate { func showEmailSheet(person :Person) { if MFMailComposeViewController.canSendMail() { let mailViewController = MFMailComposeViewController() mailViewController.mailComposeDelegate = self mailViewController.setToRecipients([person.email!]) self.presentViewController(mailViewController, animated: true, completion: nil) } } 

Что я делаю не так?

Вот рабочий код из одного из моих проектов. Обязательно работайте с формой на устройстве iOS, а не в симуляторе.

 import UIKit import MessageUI class ViewController: UIViewController, MFMailComposeViewControllerDelegate { @IBAction func launchEmail(sender: AnyObject) { var emailTitle = "Feedback" var messageBody = "Feature request or bug report?" var toRecipents = ["[email protected]"] var mc: MFMailComposeViewController = MFMailComposeViewController() mc.mailComposeDelegate = self mc.setSubject(emailTitle) mc.setMessageBody(messageBody, isHTML: false) mc.setToRecipients(toRecipents) self.presentViewController(mc, animated: true, completion: nil) } func mailComposeController(controller:MFMailComposeViewController, didFinishWithResult result:MFMailComposeResult, error:NSError) { switch result.value { case MFMailComposeResultCancelled.value: println("Mail cancelled") case MFMailComposeResultSaved.value: println("Mail saved") case MFMailComposeResultSent.value: println("Mail sent") case MFMailComposeResultFailed.value: println("Mail sent failure: %@", [error.localizedDescription]) default: break } self.dismissViewControllerAnimated(true, completion: nil) } } 

У меня такая же проблема в Xcode6 и iOS8.

Однако я заметил, что это проблема эмулятора. Следующий код работает на iOS8, но только на устройстве (а не на эмуляторе)!

 MFMailComposeViewController *composer = [[MFMailComposeViewController alloc] init]; if([MFMailComposeViewController canSendMail]) { composer.mailComposeDelegate = self; messageContent=[NSString stringWithFormat:@"Bla bla"]; [composer setSubject:@"The subject"]; [composer setMessageBody:messageContent isHTML:NO]; [composer setToRecipients:[NSArray arrayWithObject:[NSString stringWithFormat:@"[email protected]"]]]; [composer setCcRecipients:nil]; [composer setBccRecipients:nil]; [composer setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; [self presentViewController:composer animated:YES completion:nil]; } 

Я пришел с таким простым решением:

 //outlet & btns @IBOutlet weak var forgotEmail: UITextField! @IBAction func resetPW(sender: AnyObject) { // send email var mailer = MFMailComposeViewController() mailer.mailComposeDelegate = self mailer.setSubject("Forgot Password") mailer.setToRecipients(["[email protected]"]) presentViewController(mailer, animated:true, completion: nil) } 

PS: «setToRecipients» работает только на реальном устройстве, а не в симуляторе!

  • Любой способ хранения структуры в NSCache
  • Применить визуальный эффект к пикселям изображения в Swift
  • Анимация UIButton в Swift
  • Объект Cast для класса, хранящийся в переменной
  • Как я могу получить доступ к заголовку «Content-Type» сообщения NSHTTPURLResponse?
  • Есть ли способ использовать Bcrypt для разработки iOS с помощью Swift?
  • Как пропустить предыдущий просмотр при нажатии кнопки «Назад»
  • SWIFT: «SecPolicy» не имеет члена с именем «takeRetainedValue»
  • Невозможно изменить цвет фона панели поиска
  • Ошибка xcode: «Использование неразрешенного идентификатора: GGLContext» (без CocoaPods)
  • Преобразование анимации цикла в прямоугольник
  • Давайте будем гением компьютера.