使用NavigationController的iOS6方向

时间:2013-05-17 16:47:07

标签: ios6 uinavigationcontroller orientation pushviewcontroller autorotate

我正在开发一个具有多个视图和根视图控制器的应用程序。它基于使用pushViewController的UINavigationController: 在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;
}

它不起作用。 shouldAutorotate:方法从未被调用过。我尝试过UINavigationControllerDelegate也没有结果。当我将这些视图控制器的超类从UIViewController更改为UINavigationController时,视图不会显示,只显示导航栏。任何人都可以帮忙吗?

1 个答案:

答案 0 :(得分:0)

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