我在iOS 6中使用导航视图创建了一个应用程序。此外,在应用程序摘要中设置了所有方向选项,甚至使用了
-(BOOL) shouldAutoRotate
而且
-(NSUInteger) supportedInterfaceOrientaion
在我的视图控制器中有一些方法。当我运行应用程序时,方向除了倒立外都正常工作。我该怎么做才能支持倒立呢?
当我添加UITabBar控制器时,我也遇到了同样的问题。
请分享您的想法。
谢谢
我在iOS 6中使用导航视图创建了一个应用程序。此外,在应用程序摘要中设置了所有方向选项,甚至使用了
-(BOOL) shouldAutoRotate
而且
-(NSUInteger) supportedInterfaceOrientaion
在我的视图控制器中有一些方法。当我运行应用程序时,方向除了倒立外都正常工作。我该怎么做才能支持倒立呢?
当我添加UITabBar控制器时,我也遇到了同样的问题。
请分享您的想法。
谢谢
嗨,我已经找到了解决我的问题的方案。
解决方案: 对于包含UINavigation控制器的应用程序,我只需为UINavigation Controller类创建一个分类,并定义这些方法。
-(BOOL) shouldAutorotate{
return YES;
}
-(NSUInteger) supportedInterfaceOrientations{
return UIInterfaceOrientationMaskAll;
}
添加此代码后,我的应用程序支持了所有方向。
同样,我也针对UITabBarController做了同样的操作。通过为UITabBarController创建类别,这也对我起作用。
谢谢。
传统上,手机应用程序不支持倒置(为什么要把手机倒过来呢?)- 默认项目将支持纵向和横向两个选项,但不支持倒置。
在Xcode的项目信息查看器中更改此设置即可。有一个支持方向的视觉表示,倒置将被取消选择。
我认为NSUserDefault的解决方案是不完整的:
来自: https://developer.apple.com/library/ios/qa/qa1688/_index.html
注意: 当修改UIKit类(如UINavigationController)的旋转行为时,应始终首选子类化而不是类别。因为其他类可能依赖于UIKit容器视图控制器的现有行为,类别引入的更改可能会导致意外的行为。
所以我认为最好的解决方案是创建一个子类并添加:
-(BOOL) shouldAutorotate{
return YES;
}
-(NSUInteger) supportedInterfaceOrientations{
return UIInterfaceOrientationMaskAll;
}