在不同视图上旋转IPad屏幕方向

时间:2012-07-18 12:19:57

标签: xamarin.ios

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

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

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

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

由于

2 个答案:

答案 0 :(得分:1)

首先,将ShouldAutorotateToInterfaceOrientation设置为仅支持横向。 然后使用此hack强制更改方向:

var c = new UIViewController ();
PresentModalViewController (c, false);
DismissModalViewControllerAnimated (false);

答案 1 :(得分:1)

您的观点是否全部显示在一个uinavigationcontroller中?

如果他们是,那么我担心的答案是你无法达到你想要的目的 - 请参阅完整的解释,包括Apple开发人员文档的链接:How to constrain autorotation to a single orientation for some views, while allowing all orientations on others?

如果您确实希望达到所需的效果,那么可能会切换到使用其他“父母”来查看您的所有子视图 - 例如以模态显示它们?