2011-02-01 1 views
-1

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

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

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

ответ

1

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

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

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

+0

контроллеры с раздельным просмотром на iPad, похоже, нарушают это правило (части разделенного представления управляются полнофункциональными контроллерами представлений). что, если вы хотите реализовать свой собственный контроллер разделенного вида? вы не можете? – user102008

+0

Правильный пользователь102008, прямо сейчас Apple может реализовать контроллеры контейнеров, но мы не можем делать то же самое с публичными API. iOS 5 изменит это, но до тех пор я бы отговаривал вас от попыток сразу показать несколько представлений UIViewControllers. Вместо этого используйте общие объекты контроллера. – Jonah

 Смежные вопросы

  • Нет связанных вопросов^_^