Как правильно установить свойство interfaceOrientation в иерархии контроллеров представления? - PullRequest
0 голосов
/ 02 февраля 2011

У меня есть пользовательская иерархия контроллера представления. Контроллер дополнительного представления добавляется в пользовательский родительский контроллер представления просто как подпредставление. Родительский контроллер представления также вызывает методы -[willRotateToInterfaceOrientation:duration:] и -[didRotateFromInterfaceOrientation:] контроллера дополнительного представления в правильное время.

Кажется, все работает так, как должно, но по какой-то причине свойство interfaceOrientation установлено неправильно, оно всегда UIInterfaceOrientationPortrait.

Как заставить контроллер вспомогательного представления иметь правильное значение в interfaceOrientation при повороте на альбомную ориентацию?

1 Ответ

1 голос
/ 02 февраля 2011

Я не думаю, что вы можете, не используя публичные API в любом случае.Кроме того, тот факт, что вы пытаетесь это сделать, говорит о том, что вы не следуете рекомендованному дизайну приложений для iOS.Обратите внимание на рекомендации Руководство по программированию контроллера представлений

Примечание. Если вы хотите разделить иерархию представлений на несколько подрайонов и управлять каждой из них по отдельности, используйте общие объекты контроллера (пользовательские объекты).нисходящий от NSObject) вместо просмотра объектов контроллера для управления каждым подрайоном.Затем используйте один объект контроллера представления для управления общими объектами контроллера.

UIViewControllers предназначены для управления содержимым всего экрана.Как только вы нарушите это предположение, вы будете бороться со структурой, пытаясь заставить ваши взгляды вести себя так, как вы ожидаете.

...