Попробуйте следующее. Не уверен, почему это не работает для вас
1) установить ключ UIInterfaceOrientation
в UIInterfaceOrientationLandscapeRight в вашем файле .plist
2) переопределить ваш метод UITabBarController shouldAutorotateToInterfaceOrientation (); далее код работает только с табуляцией ноль и единица и только с одним контроллером: если у вас есть контроллер навигации и вы хотите управлять различными контроллерами, которые могут находиться в стеке, вы должны соответственно изменить код
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation {
BOOL tabZeroController = [[[self.viewControllers objectAtIndex:0] visibleViewController] isKindOfClass:[YourTabZeroTableViewController class]];
BOOL tabOneController = [[[self.viewControllers objectAtIndex:1] visibleViewController] isKindOfClass:[YourTabOneTableViewController class]];
if(self.selectedIndex == 0 && tabZeroController)
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
if(self.selectedIndex == 1 && tabOneController)
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
return NO;
}
2) настройка
[[UIDevice currentDevice] setOrientation:UIInterfaceOrientationLandscapeRight];
в методе applicationDidFinishLaunching () вашего делегата требуется только для симулятора, а не на устройстве
3) добавьте в свои контроллеры следующее shouldAutorotateToInterfaceOrientation (метод)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight);
}
4) запустите приложение на своем устройстве и убедитесь, что оно работает правильно, с помощью пункта меню «Оборудование» «Повернуть влево» и «Повернуть вправо». Вы должны увидеть дисплей в ландшафтном режиме.