У меня все приложение в портретном режиме. Тем не менее, один экран должен иметь возможность вращаться в альбомной ориентации (для воспроизведения видео). Я могу без проблем включить все ориентационные повороты через ответ @Jonathan Danek .
В моем AppDelegate у меня есть:
static var orientationLock = UIInterfaceOrientationMask.portrait
и впоследствии:
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?) -> UIInterfaceOrientationMask {
return AppDelegate.orientationLock
}
Итак, чтобы включить вращение для всех ориентаций, я делаю следующее, поскольку представлен контроллер видеовидеозаписи:
AppDelegate.orientationLock = UIInterfaceOrientationMask.all
UINavigationController.attemptRotationToDeviceOrientation()
Это прекрасно работает ? .. проблема в том, когда я пытаюсь изменить его обратно только на портретный режим.
Я пытаюсь сделать это, так как контроллер просмотра видео отклонен:
AppDelegate.orientationLock = UIInterfaceOrientationMask.portrait
UINavigationController.attemptRotationToDeviceOrientation()
.. но это не вызывает вышеуказанное Функция AppDelegate поддерживаетсяInterfaceOrientationsForWindow , если контроллер представления видео в настоящее время повернут в альбомную ориентацию. Интересно то, что будет запускать функцию, если в данный момент контроллер вида видео повернут в Портрет.
Так что мне интересно, как я могу настроить свой единственный контроллер вида на все ориентаций, но затем изменить его на просто портрет?