Мое приложение по некоторым причинам поддерживает только книжную ориентацию.
Однако в некоторых случаях мне нужно отображать видео из UIWebView (с тегом video
), и было бы неплохо, если бы пользователь мог его просматривать.в портретной или альбомной ориентации.
Контроллер настроен следующим образом:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
return UIInterfaceOrientationIsPortrait(toInterfaceOrientation);
}
Результат : видео воспроизводится только в портретном режиме (хорошо, вполне ожидаемо).
Я пытался:
- установить эту настройку для поддержки всех ориентаций, когда пользователь запускает видео
- когда видео останавливается, вернуться к «только портрет»
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)toInterfaceOrientation {
// autorotationEnabled is toggled when a video is played / stopped
return autorotationEnabled ? YES : UIInterfaceOrientationIsPortrait(toInterfaceOrientation);
}
Результат : ландшафтный режим доступен (отлично!), Но если пользователь нажимает «Готово» во время игры в альбомной ориентации, предыдущий вид появится в ландшафтном режиме после того, как игрок уволен (не так уж и здорово).
Кто-нибудь имеет представление о том, как предотвратить отображение контроллера в ландшафтном режиме при увольнении игрока?
(использование закрытого метода setInterfaceOrientation UIDevice не вариант)