UINavigationController + shouldAutoRotate +没有子类化

时间:2010-05-05 00:30:44

标签: iphone ipad uinavigationcontroller rotation

我有一个导航驱动的应用程序。我需要该应用程序旋转。 UINavigationController是窗口中的根控制器/视图。我知道(并且经历过为什么)UINavigationController的子类是禁止的。我知道我所要做的就是插入:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
    return YES;
}

进入UINavigationController,它将旋转正常。

所以我的问题是:如何在根视图控制器(UINavigationController)上启用旋转而不进行子类化?

2 个答案:

答案 0 :(得分:3)

您需要在rootViewController中覆盖此方法,而不是UINavigationController

UIViewController *rootViewController = [[MyRootViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
[rootViewController release];

答案 1 :(得分:1)

您的UINavigationController继承自UIViewController - 为什么使用您显示的方法是一件坏事?使用super的方法是完全合法的,并且是我在UINavigationController中支持旋转的唯一方法。当你从UINavigationController继承时,不会继承子类(并且在不调用super方法的情况下覆盖该方法来执行其他操作吗?)