shouldAutorotateToInterfaceOrientation и UINavigationController

У меня есть UINavigationController с кучей наложенных на него контроллеров представления. Не все ориентации контроллера представления совместимы. Например, у меня есть один альбомный вид, поверх которого я нажимаю портретный вид. shouldAutoRotateToInterfaceOrientation вызывается с запросом ландшафта, я возвращаю NO, но он все равно переходит в ландшафт. Теперь в этом виде, если я затем поверну в портретную ориентацию, он повернется и застрянет там (как и должно быть с самого начала). Но когда я открываю вид, вид под ним, который был в альбомной ориентации, теперь находится в портретной ориентации, чего не должно быть!

WTF ??????????????????

обходные пути? совет? решения? что-либо?

iOS 4.1


person Arlen Anderson    schedule 24.11.2010    source источник


Ответы (2)


Похоже, это была ошибка UINavigationController. Я закончил использовать некоторые модальные контроллеры представления для элементов верхнего стека вместо того, чтобы помещать их в стек. Это устранило мою проблему.

person Arlen Anderson    schedule 10.12.2010

Проблема в том, что вызов таких методов, как shouldAutoRotate, отправляется контроллеру навигации, а не представлениям в стеке. У вас есть выбор: делать все на уровне навигационного контроллера или делать то, что вы сделали, и переключаться на модальные переходы.

person Tim    schedule 14.02.2013