MFMailComposeViewController 出现一秒钟然后消失

Posted

技术标签:

【中文标题】MFMailComposeViewController 出现一秒钟然后消失【英文标题】:MFMailComposeViewController appears for a second then disappears 【发布时间】:2016-01-25 03:32:21 【问题描述】:

我已经按照 Swift 指南完成了 MFMailComposeViewController() 的常规设置

https://developer.apple.com/library/prerelease/ios/documentation/MessageUI/Reference/MFMailComposeViewController_class/

但是当我运行它时,电子邮件会出现片刻,然后消失,并且我收到错误消息“MailCompositionService quit unexpectedly”。

这是完整的代码

import Foundation
import UIKit
import MessageUI

class ViewController: UIViewController, MFMailComposeViewControllerDelegate 

@IBAction func showEmail(sender: AnyObject) 

    let composeVC = MFMailComposeViewController()
    composeVC.mailComposeDelegate = self
    // Configure the fields of the interface.
    composeVC.setToRecipients(["address@example.com"])
    composeVC.setSubject("Hello!")
    composeVC.setMessageBody("Hello from California!", ishtml: false)

    // Present the view controller modally.
    self.presentViewController(composeVC, 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
    
    controller.dismissViewControllerAnimated(true, completion: nil)

【问题讨论】:

【参考方案1】:

这是 xcode 模拟器中的一个已知错误。它应该可以在您的设备上正常工作。

【讨论】:

感谢您的回答 - 我以为我会发疯 - 因为我遵循了 Apple Developer Site 上的确切说明。【参考方案2】:

您的代码是正确的。 MFMailComposeViewController 组件不能在iOS simulator 中测试,只能在device 中测试。

如果您在Apple Developer Forums 中查看此Thread,则问题在Apple Bug Report 中有一张票,但仍然没有任何修复。

【讨论】:

以上是关于MFMailComposeViewController 出现一秒钟然后消失的主要内容,如果未能解决你的问题,请参考以下文章