我有一个通用的iOS(7.1+)应用程序,我只想支持大多数视图的纵向方向。我想1个自动旋转视图。
该应用程序是基于导航的应用程序(即基本视图是UINavigationViewController)。在部署信息下的项目编辑器中,我已将纵向,横向左侧和横向右侧检查为支持的方向。
然后我通过在我的基本导航控制器中实施-(BOOL)shouldAutorotate
方法和- (NSUInteger)supportedInterfaceOrientations
来限制应用的自动旋转。据我了解,这将限制导航控制器显示的任何视图中的方向。
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
我希望自动旋转我以模态方式呈现的视图。在我以模态方式呈现的视图控制器中,我还设置了-(BOOL)shouldAutorotate
和- (NSUInteger)supportedInterfaceOrientations
。
- (BOOL)shouldAutorotate {
return YES;
}
- (NSUInteger)supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscapeLeft | UIInterfaceOrientationMaskLandscapeRight | UIInterfaceOrientationMaskPortrait;
}
此解决方案在iPhone上运行良好!一个模态视图按预期旋转,其他视图在内部旋转。但是,使用相同代码的相同视图不会在iPad上旋转。我很困惑为什么它适用于iPhone,而不是iPad。在我看来,因为它是完全相同的视图控制器,它应该在两者上旋转。