3

我有一个以纵向模式打开的 iPad 应用程序,但是当我切换到另一个视图时,我需要将方向强制为横向,以便用户意识到他们需要将屏幕方向物理移动到横向,然后当他们离开这个视图时我需要强制方向回到纵向。

我可以看到 ShouldAutorotateToInterfaceOrientation(UIInterfaceOrientation toInterfaceOrientation) 如果相信正确,它只会限制视图可能的方向,但将其设置为一个方向(例如 UIInterfaceOrientation.LandscapeRight)不会强制改变方向。

我已经看到了一些关于使用 this.View.Transform.Rotate(...) 强制视图旋转的其他建议,但似乎对我不起作用。

只是想知道是否有人有任何建议或能够指出我正确的方向?

谢谢

4

2 回答 2

1

首先,设置ShouldAutorotateToInterfaceOrientation为仅支持横向。然后使用这个技巧来强制改变方向:

var c = new UIViewController ();
PresentModalViewController (c, false);
DismissModalViewControllerAnimated (false);
于 2012-07-18T12:42:38.860 回答
1

您的视图是否都显示在单个 uinavigationcontroller 中?

如果是,那么恐怕答案是您无法实现您想要的 - 请参阅完整的解释,包括指向 Apple 开发人员文档的链接:How to constrain autorotation to a single direction for some views, while允许对他人的所有方向?

如果您确实想实现您正在寻找的效果,那么可能会切换到对所有子视图使用其他“父级” - 例如以模态方式显示它们?

于 2012-07-19T16:21:19.663 回答