启用iPhone界面方向

4
我正在尝试让我的应用在设备旋转时旋转界面,但我做不对。我已经在 plist 信息文件中添加了支持的接口,并对 shouldRotateToInterfaceOrientation 返回了 yes。
这是旋转功能的实现方式吗? 请帮忙!

如果您在这些方法上设置断点,当您旋转设备时,它是否会被触发? - psychotik
我不确定BP是什么,抱歉,我刚接触iOS编程环境。 - Olsi
我只在第一个视图上设置了断点来进行测试,当它第一次启动时被命中了四次,但在旋转模拟器时却从未被命中。 - Olsi
如果断点没有被触发,那么很有可能你的UIViewController并没有设置为窗口的视图控制器。本文第二个要点讨论了这种情况:http://developer.apple.com/library/ios/#qa/qa1688/_index.html - ThomasW
4个回答

1
也许尝试编辑info.plist文件,并在其中添加支持的方向?
选择您的项目-->选择您的目标-->信息-->支持的界面方向,然后点击加号4次以支持这些方向:
Item 0   Landscape (left home button)
Item 1   Landscape (right home button)
Item 2   Portrait (top home button)
Item 3   Portrait (bottom home button)

希望能对您有所帮助!


0
如果你正在使用 UITabBarController,那么你需要调用它的子视图的 shouldAutoratateToInterfaceOrientation 方法。
假设你有两个选项卡,请尝试将以下两行添加到使用 UITabViewController 的类中的 shouldAutorotateToInterfaceOrientation 方法中。
[[tabBarController.viewControllers objectAtIndex:0] shouldAutorotateToInterfaceOrientation:interfaceOrientation];
[[tabBarController.viewControllers objectAtIndex:1] shouldAutorotateToInterfaceOrientation:interfaceOrientation];

当然,“tabBarController”必须通过IB与您的XIB文件中的UITabBarController链接。

谢谢,


0

请确保您已将shouldRotateToInterfaceOrientation添加到您想要支持不同方向的视图控制器中。它不应该放在应用程序委托中。


是的,我已经分别将其添加到每个视图控制器中。 - Olsi

0

如果您使用标准UI元素,支持方向是很简单的,所以假设您正在使用标准UI元素,那么您走在了正确的道路上。

如果您正在使用UITabController,则所有视图必须支持相同的方向,否则它将默认为最小值(例如纵向),我认为。

此外,如果您为视图使用NIB,请确保在Interface Builder中配置视图时选中“自动调整子视图”。


是的,我的应用程序中有一个TabBar,并且所有视图都具有我上面发布的相同代码,但在模拟器中仍然无法旋转。这些视图还具有导航控制器,并且我已经通过编程方式添加了它们。这可能是它无法旋转的原因吗?视图的其他元素已在IB中添加,并且它们在IB中可以很好地旋转。非常感谢您的时间:):):) - Olsi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接