0

我无法让我的应用程序的方向正常运行。简而言之,我有两个视图控制器,我将在我的应用程序中切换它们。ViewControllerA只能纵向或倒置显示。ViewControllerB可以在四个方向中的任何一个方向显示。

这似乎应该很简单。我不确定到底该怎么做,但我想如果我只是摆弄shouldAutorotate, shouldAutorotateToInterfaceOrientation:supportedInterfaceOrientations然后我应该得到我想要的。出于某种原因,界面方向info.plist完全覆盖视图控制器中的任何代码。如果我只允许肖像info.plist但允许我的视图控制器中的所有内容,它不会旋转。唯一被调用的方法是supportedInterfaceOrientations(我在其中返回UIInterfaceOrientationMaskAll)。同样,如果我允许在 中的每个方向info.plist,旋转设备也会旋转 viewController,即使在我的代码中我不允许任何非纵向的方向。

我真的不知道我做错了什么。有人可以帮我看看我的方向代码应该是什么样子的片段ViewControllerAViewControllerB以及应该选择什么方向info.plist。谢谢!

4

3 回答 3

0

iOS 6 中不推荐使用 shouldAutorotateToInterfaceOrientation 方法。而是在所有当前的全屏视图控制器中实现 supportedInterfaceOrientations 和 shouldAutorotate 方法。

还要确保您的应用在主窗口上执行 setRootViewController。

于 2012-10-06T17:14:28.747 回答
0

在你的 AppDelegate.m 上试试这个

//[window_addSubview:navController_.view];

[window_setRootViewController:navController_];

于 2012-10-25T13:54:13.907 回答
0

开启功能

 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation

您应该对要旋转到的所有界面返回 true,假设您只想要纵向

return interfaceOrientation == UIInterfaceOrientationPortrait;

如果你想要除了颠倒之外的一切

return !(interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown);

在 plist 本身上,它设置了更多全局值,因此如果此选项不可用,您的代码将不会运行。您必须在 plist 上授予它才能为两个视图执行此操作。

希望这可以帮助。

于 2012-10-05T15:28:36.557 回答