ios-simulator - 如何通过模拟器使用 MFMailComposeViewController?

标签 ios-simulator swift2 mfmailcomposeviewcontroller

我想在 Swift 2.0 和 Xcode 7.0.1 中使用 MFMailComposeViewController()。我担心这是一个重复的问题,但没有找到解决方案。

我的代码:

@IBAction func sendMail(sender: AnyObject) {
  let picker = MFMailComposeViewController()
  picker.mailComposeDelegate = self
  picker.setSubject(subject.text!)
  picker.setMessageBody(body.text, isHTML: true)
  presentViewController(picker, animated: true, completion: nil)
}

func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError?) {
   switch result.rawValue {
   case MFMailComposeResultCancelled.rawValue:
       print("Mail cancelled")
   case MFMailComposeResultSaved.rawValue:
       print("Mail saved")
  case MFMailComposeResultSent.rawValue:
       print("Mail sent")
  case MFMailComposeResultFailed.rawValue:
       print("Mail sent failure: \(error!.localizedDescription)")
  default:
      break
 }
 dismissViewControllerAnimated(true, completion: nil)

错误被抛出 print("邮件已取消")

当我在我的设备(iPad)上测试时,一切正常。但是当我使用模拟器时,我收到错误

 viewServiceDidTerminateWithError: Error          
 Domain=_UIViewServiceInterfaceErrorDomain Code=3 "(null)" 
 UserInfo={Message=Service Connection Interrupted}
 Mail cancelled

但我想在模拟器中运行它来看看它在 iPhone 6 上的样子...

最佳答案

您必须首先检查设备是否可以使用MFMailComposeViewController.canSendMail()发送邮件

@IBAction func sendMail(sender: AnyObject) {
    guard MFMailComposeViewController.canSendMail()
        else { 
            // TODO: Alert the user its device cannot send mail
            print("Mail services are not available")
            return 
    } 

    let picker = MFMailComposeViewController()
    picker.mailComposeDelegate = self
    picker.setSubject(subject.text!)
    picker.setMessageBody(body.text, isHTML: true)
    presentViewController(picker, animated: true, completion: nil)
}

关于ios-simulator - 如何通过模拟器使用 MFMailComposeViewController?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32938348/

相关文章:

ios - 单点触控 : consecutive views

ios - MFMailComposeViewController 的 UINavigationBar 不一致地显示正确的图像/颜色

ios - 为什么 MFMailComposeViewController 返回 MFMailComposeResultFailed?

ios8 - 如何在 xcode 6 上启动 iOS carplay 模拟器

iphone - 如何在不连接设备的情况下仅创建 IPA?

ios - 将 ray wenderlich mapkit 教程升级到 xcode 7 错误 mkplacemark

ios - 如何使用参数切换到 ViewController 或 TableViewController?

xcode_backend.sh : no such file or directory. 我需要创建这个文件吗?

xcode - 无法附加到进程 ID Xcode

ios - Swift 2中RATreeView的工作示例?