Почему iPad перестает автоматически поворачиваться, когда я начинаю накладывать контроллеры просмотра?

У меня есть довольно большой проект, в котором я загружаю несколько контроллеров представления один за другим. Во-первых, заставка, за которой следует система меню, а когда пользователь нажимает на меню, оно переходит к контроллеру представления статьи.

Поместите все это с помощью shouldAutorotate... установите YES для всех вращений, это работает нормально. Однако у меня есть строка меню, которую мне нужно скользить вниз поверху, когда был распознан жест касания. У меня есть один для главного меню и один для просмотра статьи.

Если я вставлю один из них, он все равно будет автоматически вращаться. Однако, как только я вставляю следующий, автоповорот перестает работать. Я попытался поместить строки меню в делегат приложения, а также вложить их в контроллеры представления меню/статьи. Контроллер представления строки меню также имеет параметр shouldAutorotate..., установленный в YES. Фактически, для каждого контроллера представления в проекте (всех 7) установлено значение YES. И все же, когда я добавляю свой второй контроллер строки меню, он перестает автоматически поворачиваться. Он даже не запускает метод «shouldAutorotate», чтобы спросить об этом.

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

Любые идеи? Спасибо!


person jowie    schedule 04.08.2010    source источник


Ответы (1)


Похоже, ответ... Не помещайте контроллеры представления в другие контроллеры представления! Один контроллер представления = один экран, кажется, это правило. Мне нужно многому научиться!

person jowie    schedule 19.08.2010
comment
Нет, это не правда, приятель. Подумайте о tabBar и средствах навигации. - person Faser; 30.12.2011
comment
@UrbanSeifert - правда, но они кажутся специальными встроенными случаями. Есть что-то в размещении пользовательских контроллеров представления внутри других пользовательских контроллеров представления, что нарушает некоторые функции. Возможно, придется реализовать какой-то метод и передать какое-то значение, но в документации об этом ничего нет. В результате я обнаружил, что это нарушает функциональность автоповорота. И я смотрел учебники Стэнфорда, в которых говорится, что это тоже плохая практика. - person jowie; 04.01.2012