从 iPad 上的模态 FormSheet 呈现 MFMailComposeViewController?

Posted

技术标签:

【中文标题】从 iPad 上的模态 FormSheet 呈现 MFMailComposeViewController?【英文标题】:Present MFMailComposeViewController from modal FormSheet on iPad? 【发布时间】:2012-04-18 21:31:27 【问题描述】:

有没有人成功地在 iPad 上通过 UIModalPresentationStyleFormSheet 视图控制器展示标准 Apple MFMailComposeViewController

当我这样做时,视图按预期显示,但是当用户点击任何输入文本视图时,例如主题,按下取消按钮的键盘滑动将显示“删除草稿”和“保存草稿”弹出框超出屏幕范围。

如果我将模式视图更改为全屏,它可以正常工作。

【问题讨论】:

【参考方案1】:

我认为您不会将其作为表单呈现。使用此代码为我创造了奇迹:

MFMailComposeViewController *mailViewController = [[MFMailComposeViewController alloc] init];

mailViewController.mailComposeDelegate = self;
[mailViewController setSubject:@"Subject"];
[mailViewController setMessageBody:@"" ishtml:NO];
mailViewController.modalPresentationStyle = UIModalPresentationFormSheet;

[self presentModalViewController:mailViewController animated:YES];

【讨论】:

你说得对,这确实有效,谢谢。我在这里看到的唯一问题是,如果您让弹出框可见(显示“取消”等),然后旋转 iPad,弹出框会像以前一样从屏幕上移出。对此有什么想法吗?谢谢! 我最终通过使用样式 UIModalPresentationCurrentContext 呈现模态视图控制器来解决问题。 UIModalPresentationCurrentContext 也为我修复了它。

以上是关于从 iPad 上的模态 FormSheet 呈现 MFMailComposeViewController?的主要内容,如果未能解决你的问题,请参考以下文章

如何从 ParentViewController 中关闭 formSheet 模态?

在 Ipad 上的模态视图上插入子视图

iPad上的模态表单在Swift中透明?

iPad上的模态表单视图控制器 - 淡入黑色

视图控制器以模态方式呈现/关闭时的通知?

为啥我的模态呈现(表单)navController 的 rootViewController 在模态呈现时不知道它的尺寸较小?