如何推送MFMailComposeViewController? (iOS 5)

如何推送MFMailComposeViewController? (iOS 5)

问题描述:

从tableview中我想呈现一个MFMailComposeViewController。我不想使用presentModalViewController:animated:方法,而是使用视图控制器,因此它与此表视图中的其他动画一致。如何推送MFMailComposeViewController? (iOS 5)

因为MFMailComposeViewController是一个UINavigationController,推动导航控制器,不支持,我用:

[[self navigationController] pushViewController:[mailComposer topViewController] animated:YES]; 

这个工作,但是当我点击取消按钮,它给出了警告:

出席情况由其超级视图剪辑的操作表单。某些控件可能不会响应触摸。在iPhone上尝试 - [UIActionSheet showFromTabBar:]或 - [UIActionSheet showFromToolbar:]而不是 - [UIActionSheet showInView:]。

UIActionSheet底部的取消按钮不响应触摸。有谁知道是否可以推送一个MFMailComposeViewController?

+1

你已经回答了你的问题使用-presentModalViewController:animated: - _MFMailComposeViewController是一个UINavigationController,推动导航控制器不supported_ – beryllium

+0

,但你可以把MFMailComposeViewController的UIViewController。或者这不被支持? – Marco

+0

您的代码推送UIViewController(topViewController返回它)。这是一种正常的行为。 – beryllium

作为模态视图呈现MFMailComposeViewController与Apple的HIG一致。将它推到导航堆栈上不是。 (如果在执行上的iOS 5或更高或-presentViewController:animated:completion:

+0

感谢您的回答。好的,所以没有办法让MailComposer从右到左动画?这个动画不被支持似乎有点奇怪。我认为用户不明白为什么“发送电子邮件”功能会从顶部进行动画显示,并且此桌面视图中的所有其他功能都是从右到左推动的。 – Marco

+1

你也可以使用'UIModalTransitionStyleFlipHorizo​​ntal'。否则,从左到右的过渡用于指示用户正在深入到信息层次结构中。呈现邮件作曲者的目的是成为“行动中的绊脚石”,并打算成为一种模态行动。从自包含的“UINavigationController”组件获取视图控制器层次结构是苹果公司改变它的行为或结构后应用程序中损坏的应用程序的收据。 – gschandler

+2

为了将来的知识,'presentModalViewController:animated:'已被Apple弃用,所以您应该使用'presentViewController:animated:completion:'来代替。 – 2012-09-24 11:10:58