我有一个导航驱动的应用程序。我需要该应用程序旋转。 UINavigationController是窗口中的根控制器/视图。我知道(并且经历过为什么)UINavigationController的子类是禁止的。我知道我所要做的就是插入:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
进入UINavigationController,它将旋转正常。
所以我的问题是:如何在根视图控制器(UINavigationController)上启用旋转而不进行子类化?
答案 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方法的情况下覆盖该方法来执行其他操作吗?)