阻止'父'视图控制器旋转

时间:2012-12-07 15:33:29

标签: iphone rotation landscape portrait

我的UIVewController和旋转出了问题,我可以帮忙解决这个问题。

基本上,我有一个可以从纵向旋转到横向的视图。当它旋转到横向时,我向我的肖像提供了一个不同的视图(图表)...这是一个基于UITableView的输入视图。一切正常。

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

这样做没问题,但是如果用户在MFMailComposeViewController视图中将iphone旋转到横向,我的基础视图不会获得旋转通知,因此我知道将基础视图更改为图表视图。因此,当用户在仍处于横向状态时解除邮件视图时,我会在横向位置错误显示的原始“纵向”输入视图中获取。

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

希望有意义并感谢您的建议。

1 个答案:

答案 0 :(得分:1)

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

您还可以查看您的MFMailComposeViewController正在执行的操作,但我认为您必须将其子类化并实现-(void)didRotateFromInterfaceOrientation:,然后通过通知或委托发回信息......但您不需要with preferredInterfaceOrientationForPresentation。

希望这有帮助!