Si vous voulez que tous nos contrôleurs de navigation respectent le contrôleur de vue de la vue, vous pouvez utiliser une catégorie afin que vous n'ayez pas à passer par un tas de noms de classe.
@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
Comme quelques-uns des commentaires indiquent, c'est une solution rapide au problème. Une meilleure solution est la sous-classe UinavigationController et y mettre ces méthodes. Une sous-classe aide également à soutenir 6 et 7.