UINavigationController的+ shouldAutoRotate +无子类(UIN

2019-10-21 12:03发布

我有一个导航应用驱动。 我需要一个应用程序来转动。 所述的UINavigationController是在窗口的根控制器/视图。 我知道(和经历过为什么)它是一个没有没有子类的UINavigationController。 我知道我必须做的是插入:

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

到UINavigationController的,它会转动的罚款。

所以我的问题是:如何启用根视图控制器(UINavigationController的)上的旋转没有子呢?

Answer 1:

你需要重写这个方法在你的rootViewController ,而不是在UINavigationController

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


Answer 2:

你的UINavigationController从UIViewController的继承 - 为什么要使用你看是一件坏事的方法? 这是完全合法使用超类的方法,是我曾经支持一个UINavigationController旋转的唯一途径。 会不会继承是当你从UINavigationController的继承(并覆盖方法做别的事情,而不调用父类方法?)



文章来源: UINavigationController + shouldAutoRotate + no subclassing