I have all the app in portrait mode, but I have one of the viewcontroller in landscape mode to be a gallery of images.
On the tab Project Summary enable LandscapeLeft mo
For Portrait Mode VC,
#pragma mark iOS 5 Orientation Support
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return UIInterfaceOrientationIsPortrait(interfaceOrientation);
}
#pragma mark iOS 6 Orientation Support
-(NSUInteger)supportedInterfaceOrientations
{
return UIInterfaceOrientationMaskPortrait;
}
For Landscape mode VC,
#pragma mark - iOS 5.0 and up Rotation Methods
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
return UIInterfaceOrientationMaskLandscape;
}
#pragma mark - iOS 6.0 and up Rotation Methods
- (NSUInteger)supportedInterfaceOrientations;
{
return UIInterfaceOrientationMaskLandscape;
}
If you are using navigationController,
Create a category like this,
@interface UINavigationController (Rotation_IOS6)
@end
@implementation UINavigationController (Rotation_IOS6)
-(BOOL)shouldAutorotate
{
if([self.visibleViewController isMemberOfClass:NSClassFromString(@"YourLandscapeViewController")])
{
return UIInterfaceOrientationMaskLandscape
}
return NO;
}
- (NSUInteger)supportedInterfaceOrientations
{
return [[self topViewController] supportedInterfaceOrientations];
}
- (UIInterfaceOrientation)preferredInterfaceOrientationForPresentation
{
if([self.visibleViewController isMemberOfClass:NSClassFromString(@"YourLandscapeViewController")])
{
return UIInterfaceOrientationMaskLandscape
}
return [[self.viewControllers lastObject] preferredInterfaceOrientationForPresentation];
}
@end