【问题标题】:How do I dismiss mailComposeController when using Document Controller presentOptionsMenuFromBarButtonItem:?使用 Document Controller presentOptionsMenuFromBarButtonItem: 时如何关闭 mailComposeController?
【发布时间】:2015-03-23 21:30:58
【问题描述】:

我已经(成功地)实现了

mailComposeController:didFinishWithResult:error:

在我的应用程序的其他部分中关闭邮件撰写视图的方法,其中用户点击我提供的特定图标以发送电子邮件。我知道我必须设置委托并处理用户的“didFinishWithResult”操作。 现在在另一部分,我打开一个文档并使用

UIBarButtonSystemItemAction, Document controller, and presentOptionsMenuFromBarButtonItem: method,

我允许用户以 PDF 格式通过电子邮件发送文档。现在 PDF 已成功附加到邮件中,并且可以在输入电子邮件地址后发送。我的问题是发送邮件后,撰写视图没有被关闭。取消草稿/保存草稿选项后也不会被解雇。我想我可能需要实现

- (void)mailComposeController:(MFMailComposeViewController *)controller didFinishWithResult:(MFMailComposeResult)result error:(NSError *)error 

但我似乎无法使用这种方法。 (并且在使用 presentOptionsMenuFromBarButtonItem: 时不应该自动处理这个问题吗?)。 我可能错误地设置了委托。如果有一些内置的方式应该被处理,或者,应该如何为此设置委托,任何人都可以阐明一下。

【问题讨论】:

    标签: ios objective-c mfmailcomposeviewcontroller mfmailcomposer messageui


    【解决方案1】:

    如果我没听错的话,我也会遇到类似的问题。

    你需要把它放在 ViewDidLoad 之后:

    // MARK: MFMailComposeViewControllerDelegate Method
    func mailComposeController(controller: MFMailComposeViewController, didFinishWithResult result: MFMailComposeResult, error: NSError!) {
         self.dismissViewControllerAnimated(true, completion: nil)
    }//end func mailComposeController
    

    【讨论】:

      【解决方案2】:

      我尝试了很多东西,包括 Sebah 的建议。这些都不起作用。 这在 iOS 7.x 上运行良好,但从 iOS 8 开始它给了我这个问题。最后,当我从 xCode 5 迁移到 6 时,它自己解决了。我猜是一些兼容性问题。 xCode 5 在 iOS 7.x 之前运行良好,但对于 iOS 8 及更高版本,我猜我不得不强制使用 xCode 6。 这是一年前的事,当时使用 xCode 6 并打包您的应用程序不是强制性的,因此我们一直使用 xCode 5。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-02-09
        • 2021-07-31
        • 1970-01-01
        • 1970-01-01
        • 2018-11-07
        • 1970-01-01
        • 2014-05-17
        相关资源
        最近更新 更多