This is because Apple has changed the way it controls the orientation of the UIViewController. In iOS6, Oreintation is handled differently. In iOS6 containers (e.g. UINavigationController) do not consult their children to determine if they should autorotate. By default, UIInterfaceOrientationMaskAll interface orientations for iPad idioms and UIInterfaceOrientationMaskAllButUpsideDown for iPhone idioms are supported for applications and view controllers. This change in device orientation has changed by default.
So, you need to follow some steps.
1 -Set the orientation from here

2 -Put this code in the FirstViewController added to the RootViewController
@implementation UINavigationController (RotationIn_IOS6) //Here UINavigationController is the RootViewController added To the Window -(BOOL)shouldAutorotate { return [[self.viewControllers lastObject] shouldAutorotate]; } -(NSUInteger)supportedInterfaceOrientations { return [[self.viewControllers lastObject] supportedInterfaceOrientations]; } - (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation { return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation]; } @end
** Put below methods in ViewController introduced in IOS6 Allow Oreintation change **
- (BOOL)shouldAutorotate { return NO; } - (NSUInteger)supportedInterfaceOrientations { return (UIInterfaceOrientationMaskPortrait | UIInterfaceOrientationMaskPortraitUpsideDown ); }
source share