В прошивкой 5 и 6 я делал это в методе viewWillAppear на мой взгляд контроллера:Force альбомной ориентации в одном контроллере представления
UIViewController *c = [[UIViewController alloc] init];
//To avoid the warning complaining about the view not being part of the window hierarchy
[[[TWNavigationManager shared] window] addSubview:c.view];
[self presentModalViewController:c animated:NO];
[self dismissModalViewControllerAnimated:NO];
[c.view removeFromSuperview];
Я также добавил этот метод в приложение делегата
- (NSUInteger)application:(UIApplication *)application supportedInterfaceOrientationsForWindow:(UIWindow *)window
{
return [[TWNavigationManager shared] supportedInterfaceOrientationsForTopViewController];
}
Который в основном направляет вызов на контроллер верхнего уровня.
Это вызвало методы автоматического поворота для моего контроллера представления, а затем я смог принудительно настроить ориентацию ландшафта только для этого контроллера вида. Теперь в iOS 7 этот код больше не работает. Белый экран отображается в полноэкранном режиме.
Каким будет подходящий подход в iOS7?
Заранее спасибо.
Откуда вы представляете этот Lanscape-only-viewController? Является ли это «push» в стеке навигации? Или представлением viewcontroller modally? (в этом случае это проще) – Vinzzz
Да, это толчок в навигационный стек. Мой контроллер корневого представления - это UITabBarViewController, и каждый элемент имеет UINavigationController. – mdonati