If you use iOS 6+ I would suggest subclassing UINavigationController
and overriding supportedInterfaceOrientations
Something similar to:
- (NSUInteger)supportedInterfaceOrientations;
{
return [self.topViewController supportedInterfaceOrientations];
}