Если вы хотите, чтобы все наши навигационные контроллеры уважали контроллер верхнего вида, вы можете использовать категорию, чтобы вам не приходилось проходить и менять кучу имен классов.
@implementation UINavigationController (Rotation_IOS6)
-(BOOL)shouldAutorotate
{
return [[self.viewControllers lastObject] shouldAutorotate];
}
-(NSUInteger)supportedInterfaceOrientations
{
return [[self.viewControllers lastObject] supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}
@end
Как указывают некоторые из комментариев, это быстрое решение проблемы. Лучшим решением является подкласс UinavigationController и поместите эти методы. Подкласс также помогает поддерживать 6 и 7.