Я хочу сказать в каждом представлении контроллера, какую ориентацию он поддерживает и ограничивает их. Это то, что я пробовал:Ограничение ориентации на контроллер представления
Используйте пользовательский навигационный контроллер, как в одном из моих old posts, но это не похоже на работу больше. Решение аналогично iOS 6 - (BOOL)shouldAutorotate not getting called for navigation controllers pushed viewControllers
Я также пробовал Setting Orientation in Xamarin iOS, но приложение вылетает на
RootViewController
. Я получаюNullReferenceException
здесь.Кроме того, я попробовал IOS 8 : Restricting orientation on a View Controller из удаленного блога от Шри Чакраборти (shrixamarin). Здесь приложение также выходит из строя, если я использую
application:supportedInterfaceOrientationsForWindow:
, потому чтоRootViewController
имеет значение NULL. Решение, кажется, похож на How do I restrict orientation per view controller in iOS7 in a navigation controller hierarchy
Ни одно из решений, кажется, работает. Или я пропущу что-то важное? Как я могу ограничить ориентацию, для которой диспетчер просмотра A имеет только ландшафт, контроллер просмотра B является только портфолио, а контроллер просмотра C может отображаться во всех доступных ориентациях?
Спасибо тонну! Я удалил переопределение для 'ShouldAutorotate()' в моих контроллерах представления и теперь он работает. Я использую свой [* CustomNavigationController *] (http://stackoverflow.com/a/26012695/426227). Еще один вопрос: если я перехожу из контроллера вида A (только пейзаж), чтобы просмотреть контроллер B (только портрет), то ориентация не обновляется. Я нахожусь в ландшафте, несмотря на то, что контроллер просмотра B позволяет только портрет. Только после поворота поведение снова вернулось. – testing
Как вы перемещаетесь от A до B? 'UINavigationController' push? – Krumelur
Да 'NavigationController.PushViewController (testViewController, true);' – testing