title: preferredInterfaceOrientationForPresentation not getting called
body: <p>I have a scenario in which I have a UITabbarController with 5 tabs. Each tab contains a UINavigationController.</p>
  
  <p>Now in one of the UINavigationController rootViewController, when I select an option, another viewcontroller is pushed. Now I want the another view controller to be Landscape only. </p>
  
  <p>Following is the code of my UITabBarController n UINavigationController category for Orientation</p>
  
  <pre><code>@implementation UITabBarController (rotation)
  
  -(BOOL)shouldAutorotate
  {
      if ([self.selectedViewController respondsToSelector:@selector(shouldAutorotate)]) {
          return [self.selectedViewController shouldAutorotate];
      }
      else {
          return YES;
      }
  }
  
  - (NSUInteger)supportedInterfaceOrientations
  {
      if ([self.selectedViewController respondsToSelector:@selector(supportedInterfaceOrientations)]) {
          return [self.selectedViewController supportedInterfaceOrientations];
      }
      else if(DEVICE_IS_IPAD)
          return UIInterfaceOrientationMaskAll;
      else
          return UIInterfaceOrientationMaskPortrait;
  }
  
  -(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
  {
      if ([self.selectedViewController respondsToSelector:@selector(supportedInterfaceOrientations)]) {
          return [self.selectedViewController preferredInterfaceOrientationForPresentation];
      }
      return 0;
  }
  
  @end
  
  @implementation UINavigationController (AutoRotationForwarding)
  
  -(BOOL)shouldAutorotate
  {
      if ([self.topViewController respondsToSelector:@selector(shouldAutorotate)]) {
          return [self.topViewController shouldAutorotate];
      }
      else {
          return YES;
      }
  }
  
  -(NSUInteger) supportedInterfaceOrientations {
      if([self.topViewController respondsToSelector:@selector(supportedInterfaceOrientations)])
      {
          return [self.topViewController supportedInterfaceOrientations];
      }
      return UIInterfaceOrientationMaskPortrait;
  }
  
  -(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
  {
      if ([self.topViewController respondsToSelector:@selector(supportedInterfaceOrientations)]) {
          return [self.topViewController preferredInterfaceOrientationForPresentation];
      }
      return UIInterfaceOrientationPortrait | UIInterfaceOrientationLandscapeLeft | UIInterfaceOrientationLandscapeRight | UIInterfaceOrientationPortraitUpsideDown;
  }
  @end
  </code></pre>
  
  <p>and the code for the ViewController which I want to be Landscape only is :</p>
  
  <pre><code>-(BOOL)shouldAutorotate
  {
      return YES;
  }
  
  -(NSUInteger)supportedInterfaceOrientations
  {
      if(DEVICE_IS_IPAD)
          return UIInterfaceOrientationMaskLandscape;
      else
          return UIInterfaceOrientationMaskPortrait;
  }
  
  -(UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
  {
      return UIInterfaceOrientationLandscapeLeft;
  }
  </code></pre>
  
  <p>The Main issue is preferredInterfaceOrientationForPresentation is not at all called for UITabbarController or UINavigationBarController or even the view controller which I want to show.</p>
  
  <p>Could you please let me know what am I doing wrong?</p>
  
  <p>Thanks.</p>