iOS6 Orientation with NavigationController



我正在开发一个有几个视图和一个根视图控制器的应用程序。它基于UINavigationController使用pushViewController:在didFinishLaunchingWithOptions:

BIDLoginController *loginController = [[BIDLoginController alloc] initWithNibName:@"Login" bundle:nil];
UINavigationController *navController = [[UINavigationController alloc] initWithRootViewController:loginController];
[self.window setRootViewController:self.navController];
在loginController:

BIDMainPageController *mainPageController = [[BIDMainPageController alloc] initWithNibName:@"MainPage" bundle:nil];
[self.navigationController pushViewController:mainPageController animated:YES];

但是视图控制器是UIViewController的子类,而不是UINavigationController。现在我想让一些视图支持方向(竖屏和横屏)而另一些视图只支持竖屏。我尝试了以下操作:

- (BOOL)shouldAutorotate
{
    return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
    return UIInterfaceOrientationMaskPortrait;
}

它不工作。方法从未被调用。我试过UINavigationControllerDelegate也没有结果。当我改变这些视图控制器的超类从UIViewController到UINavigationController,视图不显示,只显示一个导航栏。有人能帮忙吗?

你不能做你所描述的。iOS 6不支持强制UINavigationController的子视图控制器旋转。它们可以以不同的方式响应设备旋转,但不能强制旋转。

最新更新