【问题标题】:Prevent 'parent' viewcontroller from rotating防止“父”视图控制器旋转
【发布时间】:2012-12-07 15:33:29
【问题描述】:

我的 UIVewController 和旋转出现问题,我可以通过一些帮助来解决。

基本上,我有一个可以从纵向旋转到横向的视图。当它旋转到横向时,我向我的纵向视图呈现一个不同的视图(图表)......这是一个基于 UITableView 的输入视图。这一切都很好。

现在,我的纵向视图(并且只有纵向视图)还有一个“电子邮件”按钮,按下该按钮时,会创建并显示 MFMailComposeViewController,以便用户可以通过电子邮件发送一些数据。

这工作正常,但如果用户在 MFMailComposeViewController 视图上将 iphone 旋转到横向,我的底层视图不会收到旋转通知,所以我知道将底层视图更改为图表视图。因此,当用户在仍处于横向时关闭邮件视图时,我的原始“纵向”输入视图处于横向位置,位置不正确且显示不正确。

那么,当显示 MFMailComposeViewController 时,我是否可以在原始肖像 ViewController 中收到旋转通知,以便在原始视图重新出现时进行基本更改?或者,我可以在 MFMailComposeViewController 旋转时阻止底层视图旋转吗?

希望这是有道理的,并感谢您的建议。

【问题讨论】:

  • 什么iOS版本?解决这个问题在 iOS5 和 6 之间有很大的不同
  • 是的,是iOS6.0。让我头疼

标签: iphone rotation landscape portrait


【解决方案1】:

尝试在您的父 ViewController 中实现 -(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation 并将其设置为 UIInterfaceOrientationPortrait。

您还可以查看您的 MFMailComposeViewController 正在做什么,但我认为您必须对其进行子类化并实现-(void)didRotateFromInterfaceOrientation:,然后通过通知或委托发回信息......但您不需要使用 preferredInterfaceOrientationForPresentation .

希望这会有所帮助!

【讨论】:

  • 是的。非常感谢。辛苦了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-16
  • 1970-01-01
  • 2017-11-05
  • 1970-01-01
  • 2019-04-15
相关资源
最近更新 更多