我有一个导航应用驱动。 我需要一个应用程序来转动。 所述的UINavigationController是在窗口的根控制器/视图。 我知道(和经历过为什么)它是一个没有没有子类的UINavigationController。 我知道我必须做的是插入:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return YES;
}
到UINavigationController的,它会转动的罚款。
所以我的问题是:如何启用根视图控制器(UINavigationController的)上的旋转没有子呢?
你需要重写这个方法在你的rootViewController
,而不是在UINavigationController
。
UIViewController *rootViewController = [[MyRootViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
[rootViewController release];
你的UINavigationController从UIViewController的继承 - 为什么要使用你看是一件坏事的方法? 这是完全合法使用超类的方法,是我曾经支持一个UINavigationController旋转的唯一途径。 会不会继承是当你从UINavigationController的继承(并覆盖方法做别的事情,而不调用父类方法?)