Ориентация обработки для предыдущего UIViewController

#ios #uiviewcontroller #orientation

#iOS #uiviewcontroller #ориентация

Вопрос:

Я разрабатываю приложение для iPhone. Моим активным UIViewController является vc1. Метод shouldAutorotateToInterfaceOrientation в vc1 возвращает YES, и, следовательно, ориентация устройства обрабатывается для его просмотра автоматически.

Все вложенные представления, добавленные в это представление, имеют маски автоматического изменения размера, установленные должным образом в соответствии с ориентацией.

Фрейм представления не обновляется, чтобы соответствовать ориентации для следующего сценария:

  1. Нажмите другой UIViewController, скажем, vc2
  2. измените ориентацию устройства
  3. pop vc2

Новая ориентация не отражена для представления vc1.

Я могу зарегистрироваться для уведомления об изменении ориентации и вручную установить фрейм для представления. Есть ли какой-либо способ, который обрабатывает это автоматически?

Ответ №1:

Я сделал то же самое. Я не думаю, что есть какой-либо способ сделать это автоматически.

Вероятно, вы можете отправить уведомление об ориентации устройства или вы можете проверить текущую ориентацию устройства в ViewWillAppear и соответствующим образом установить фрейм.

Ответ №2:

Какова именно структура вашего app ViewController? Убедитесь, что вы используете NavigationController (вы можете скрыть панель навигации, если хотите). Тогда это должно просто сработать.