Wenn Sie möchten, dass alle unsere Navigationscontroller den Top -Ansichts -Controller respektieren, können Sie eine Kategorie verwenden, damit Sie nicht eine Reihe von Klassennamen ändern müssen.
@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
Wie einige der Kommentare hinweisen, ist dies eine schnelle Lösung für das Problem. Eine bessere Lösung ist die Unterklasse UinavigationController und setze diese Methoden dort ein. Eine Unterklasse hilft auch bei der Unterstützung von 6 und 7.