#uiviewcontroller #uinavigationcontroller #landscape
#uiviewcontroller #uinavigationcontroller #ландшафтный
Вопрос:
У меня есть UINavigationController и два ViewControllers. Проблема, с которой я сталкиваюсь, заключается в том, что представления генерируются в портретном размере, хотя я хочу, чтобы они были в альбомной ориентации!
Вот что я делаю:
1) Создаем экземпляр view1 и добавляем его в стек UINavigationControllers. Это выполняется внутри метода applications delegate didFinishLoadingWithOptions(…).
2) view1 имеет кнопку, при нажатии на которую создается экземпляр view2 и помещается в стек UINavigationControllers.
Похоже, что это работает нормально, если не считать того факта, что представления создаются в портретном формате. Я собирался вручную принудительно настроить ландшафт, используя методы преобразования, как только я создам их экземпляр, но это кажется действительно хакерским.
Я предположил, что это как-то связано с методом «shouldAutorotateToInterfaceOrientation», но он установлен для ландшафта во всех ViewControllers.
Я в полном замешательстве.
Вопрос 1) Как, черт возьми, мне решить это, является ли подход «хакерского преобразования» единственным способом?
Вопрос 2) Правильно ли это использовать NavigationController — я новичок в программировании для iPhone. Все, что мне нужно, это два ландшафтных вида, между которыми я могу щелкнуть, и это, кажется, делает это помимо ландшафтного бита ^^.
Ответ №1:
Я нашел ответ на эту проблему.
Навигационный контроллер наследует метод shouldauthororatetointerfaceorerntation для каждого из представлений внутри своего стека, однако я допустил ошибку 🙂
После добавления NavController в главное окно я не удалил ту часть, где по умолчанию он добавляет представление RootController в главное окно. Произошел какой-то конфликт, из-за которого мой навигационный контроллер перестал работать должным образом — удаление этой строки все исправило.