У меня была такая же проблема.Вы должны реализовать shouldAutorotateToInterfaceOrientation:
для вашего UITabBarController
и вернуть YES для всех ориентаций, которые вы хотите поддерживать на всех ваших контроллерах представления.И в том же методе для всех других контроллеров представления возвращайте YES только для ориентаций, которые вы хотите поддерживать в каждом из этих контроллеров представления.
Чтобы реализовать shouldAutorotateToInterfaceOrientation:
для вашего UITabBarController, вы можете создать подкласс UITabBarController, ноболее простой способ - реализовать категорию в UITabBarController и просто реализовать этот метод:
@implementation UITabBarController(orientation)
-(BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toOrientation
{
return YES; // or whatever you need
}
@end
Примечание: напечатано в веб-браузере;не скомпилировано.: -)
Вы можете поместить это правильно в файл делегата приложения .m в конце.
Я обнаружил, что UITabBarController возвращает YES только для портрета, что, очевидно, также влияет на всех подчиненных.просмотр контроллеров.В моем случае у меня был один подчиненный контроллер вида, который я хотел поддерживать как книжный, так и альбомный, и это решило его.