#ios #uiviewcontroller #orientation
#iOS #uiviewcontroller #ориентация
Вопрос:
Я разрабатываю приложение для iPhone. Моим активным UIViewController является vc1. Метод shouldAutorotateToInterfaceOrientation в vc1 возвращает YES, и, следовательно, ориентация устройства обрабатывается для его просмотра автоматически.
Все вложенные представления, добавленные в это представление, имеют маски автоматического изменения размера, установленные должным образом в соответствии с ориентацией.
Фрейм представления не обновляется, чтобы соответствовать ориентации для следующего сценария:
- Нажмите другой UIViewController, скажем, vc2
- измените ориентацию устройства
- pop vc2
Новая ориентация не отражена для представления vc1.
Я могу зарегистрироваться для уведомления об изменении ориентации и вручную установить фрейм для представления. Есть ли какой-либо способ, который обрабатывает это автоматически?
Ответ №1:
Я сделал то же самое. Я не думаю, что есть какой-либо способ сделать это автоматически.
Вероятно, вы можете отправить уведомление об ориентации устройства или вы можете проверить текущую ориентацию устройства в ViewWillAppear
и соответствующим образом установить фрейм.
Ответ №2:
Какова именно структура вашего app ViewController? Убедитесь, что вы используете NavigationController (вы можете скрыть панель навигации, если хотите). Тогда это должно просто сработать.