我希望我的几个应用程序视图控制器在 iOS 6.0 中不旋转。这就是我为使 iOS 6 中的旋转成为可能所做的事情:
1.) 在 application:didFinishLaunchingWithOptions 中设置 windows rootviewController:
self.window.rootViewController = self.tabBarController;
2.)在我的目标中(在 XCode 中)设置“支持的界面方向”,这样我就可以使用所有方向
3.) 实现了新的 iOS 6.0 旋转功能
- (BOOL) shouldAutorotate {
return YES;
}
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskAll;
}
4.) 由于某些原因,我将 UINavigationController 子类化并实现了这些新功能,并使用这个新的 NavigationController 代替了原来的。
到目前为止一切顺利,一切正常,所有视图控制器现在都能够旋转到每个方向。现在我想要几个 viewController 不旋转,只保持纵向。但是当我像这样在那些特定的视图控制器中设置新的旋转方法时,它仍然会旋转到每个方向:
- (BOOL) shouldAutorotate {
return NO;
}
-(NSUInteger)supportedInterfaceOrientations{
return UIInterfaceOrientationMaskPortrait;
}
像上面那样设置导航控制器的旋转功能也不会改变任何东西。(所有视图控制器都可以旋转到每个方向)
我究竟做错了什么?
编辑:
同样设置首选的 Interfaceorientation 不会改变任何东西:
- (UIInterfaceOrientation) preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationMaskPortrait;
}