使用Document Controller presentOptionsMenuFromBarButtonItem时如何解除mailComposeController:?

时间:2015-03-23 21:30:58

标签: ios objective-c mfmailcomposeviewcontroller mfmailcomposer messageui

我已经(成功)实施了

mailComposeController:didFinishWithResult:error:

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

UIBarButtonSystemItemAction, Document controller, and presentOptionsMenuFromBarButtonItem: method

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

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

但我似乎无法使用此方法。 (当使用presentOptionsMenuFromBarButtonItem时,不应该自动处理这个问题:?)。 我可能错误地设置了委托。如果有一些内置的方法可以照顾,或者,应该如何为此设置委托,任何人都可以提出一些启示。

2 个答案:

答案 0 :(得分:0)

如果我找对你,我也有类似的问题。

您需要在ViewDidLoad之后放置它:

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

答案 1 :(得分:0)

我尝试了很多东西,包括Sebah的建议。没有这些工作。 这适用于iOS 7.x,但启动iOS 8它给了我这个问题。最后,当我从xCode 5迁移到6时,它已经解决了。我想一些兼容性问题。 xCode 5在iOS 7.x之前服务很好,但是对于iOS 8及更高版本,猜测我必须强制使用xCode 6。 这是一年前,当使用和包装你的应用程序xCode 6不是强制性的,因此我们继续使用xCode 5。