Как заблокировать ориентацию одного контроллера вида в альбомный режим [iOS13] - PullRequest
0 голосов
/ 07 ноября 2019

У меня есть такое решение: Как заблокировать ориентацию одного контроллера представления в портретном режиме только в Swift

Это работало нормально, но теперь на iOS 13 больше не работало.

Я пробую это решение: Ошибка поворота экрана на iPadOS 13

Но это не исправить.

Может кто-то иметь рабочее решение дляПриложение для iPhone в портретной ориентации, но только один UIViewController в альбомной ориентации?

Редактировать: Я сделал пример приложения, оно прекрасно работает с iOS 12.4.2 и iPhone 6. Но моя проблема - это не работает с iOS 13.1. 3 и iPhone X. => we.tl/t-I3Um0U43fV

Редактировать 2: Благодаря @donnywals мне удается сохранить ориентацию, как на iOS 12. Мне просто нужна помощь для очистки главного экрана во времяпереход. Ярлык "TOP" составляет 90 пикселей от верха суперпредставленияКак вы можете видеть, текущая страница портрета изменяется во время перехода.

Кто-нибудь знает, как этого избежать?

enter image description here

1 Ответ

0 голосов
/ 08 ноября 2019

Вы можете заблокировать ориентацию контроллера представления, переопределив его свойство supportedInterfaceOrientations:

class ViewController: UIViewController {

  override var supportedInterfaceOrientations: UIInterfaceOrientationMask {
    return .landscape
  }

  // rest of your code
}

Редактировать: на основе примера проекта вам необходимо отказаться от нового стиля представления, чтобы получить то же самоеповедение, которое вы имели в iOS 13. Либо установите modalPresentationStyle = .fullScreen на контроллере представления, который вы представляете в коде, либо выберите соответствующую опцию в Интерфейсном Разработчике.

...