UINavigationController + shouldAutoRotate + нет подклассов - PullRequest
1 голос
/ 05 мая 2010

У меня есть приложение, управляемое навигацией. Мне нужно это приложение, чтобы вращаться. UINavigationController является корневым контроллером / представлением в окне. Я знаю (и испытал почему), что нет-нет подкласса UINavigationController. Я знаю все, что мне нужно сделать, это вставить:

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

в UINavigationController, и он будет нормально вращаться.

Итак, мой вопрос: как включить вращение на корневом контроллере представления (UINavigationController) БЕЗ его подклассов?

Ответы [ 2 ]

3 голосов
/ 05 мая 2010

Вам необходимо переопределить этот метод в вашем rootViewController, а не в UINavigationController.

UIViewController *rootViewController = [[MyRootViewController alloc] init];
UINavigationController *navigationController = [[UINavigationController alloc] initWithRootViewController:rootViewController];
[rootViewController release];
1 голос
/ 05 мая 2010

Ваш UINavigationController наследуется от UIViewController - почему использование показанного вами метода было бы плохо? Вполне допустимо использовать метод super, и это единственный способ, которым я когда-либо поддерживал ротацию в UINavigationController. Не будет ли создание подклассов, когда вы наследуете от UINavigationController (и переопределяете этот метод, чтобы делать что-то еще, не вызывая метод super?)

...