Как изменить sh ориентацию после возврата из ViewController, который заблокирован в книжной ориентации в Swift - PullRequest
0 голосов
/ 11 апреля 2020

Я работаю над приложением для iPhone, используя swift. Я хотел бы заблокировать только один ViewController в альбомной ориентации, все остальные можно использовать в альбомной или альбомной ориентации. Например:

  • ViewController1 - все ориентации
  • ViewController2 - только landscapeRight

(Причина, по которой я хочу это сделать, заключается в том, что ViewConstroller2 показывает ландшафт формат изображения в полноэкранном режиме)

Я нашел хорошее решение, которое прекрасно работает, используя принятый ответ на этот пост: Как привязать ориентацию одного контроллера представления к портретному режиму только в Swift

Теперь мой вопрос: как мне обработать событие, которое пользователь возвращает обратно ViewController1? С решением из связанного вопроса stackoverflow (и всех других решений, которые я нашел и попробовал), ViewController1 находится в ландшафтном режиме после того, как пользователь возвращается из ViewController2, независимо от ориентации реального устройства, и это сбивает с толку. Только поворот устройства в горизонтальное и вертикальное положение делает refre sh, и все выглядит так, как должно.

Два примера того, как, по моему мнению, должно работать:

  • устройство в книжной ориентации, показывая, что ViewController1 -> ViewController2 запускается -> назад к ViewController1 -> (устройство все еще находится в книжной ориентации) ViewController1 должен отображаться в книжной ориентации
  • устройство находится в книжной ориентации, показывая ViewController1 -> ViewController2 запускается (пользователь переключил устройство в физическую альбомную ориентацию) -> обратно к ViewController1 -> (устройство все еще в горизонтальной ориентации) ViewController1 должен отображаться в горизонтальной ориентации

Многие приложения используют эту заблокированную ориентацию для некоторых ViewController - кто-нибудь знает, как с этим справиться? Я полагаю, что мне нужно какое-то значение refre sh до текущей позиции устройства после возвращения к V C !!?

Большое спасибо за вашу помощь!

...