вы можете попробовать с этим кодом в ViewController, который вы хотите быть в ландшафтном режиме. Также не забудьте добавить ландшафтный режим в info.plist в ориентации поддерживаемого интерфейса.
- (void)viewWillAppear:(BOOL)animated{
BOOL pushed = [self isMovingToParentViewController];
if (pushed && [[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)])
{
NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationLandscapeLeft];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];
}}
- (void)viewWillDisappear:(BOOL)animated{
BOOL popped = [self isMovingFromParentViewController];
if (popped && [[UIDevice currentDevice] respondsToSelector:@selector(setOrientation:)]){
NSNumber *value = [NSNumber numberWithInt:UIInterfaceOrientationPortrait];
[[UIDevice currentDevice] setValue:value forKey:@"orientation"];
}}