У меня есть некоторый код, который работал отлично, пока я не обновил до iOS 13, и теперь он не работает правильно, и мне нужна помощь, чтобы это исправить. У меня есть альбомно-ориентированный вид, который выдвигает портретный вид. После обновления до iOS 13 на iPhone больше не отображается изображение в вертикальной ориентации, оно отображается в альбомной ориентации. Как я могу заставить его быть портретной ориентацией?
Я искал подобные проблемы здесь, но все они были старыми, и это, кажется, характерно для iOS 13. Пожалуйста, не говорите мне, чтобы перепроектировать интерфейс--Я уже пытался спросить клиента, и мне сказали, что они хотят сохранить текущее поведение. (Представления находятся в отдельных раскадровках из-за потребностей архитектуры).
Надеюсь, есть какое-то простое решение, которое я пропустил. Спасибо!
Файл проекта поддерживает любую ориентацию, кроме перевернутого портрета.
Упрощенный проект, показывающий, что проблема общедоступна: https://github.com/dpreuitt/testPortrait.git
Вот некоторый код:
LandscapeViewController:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (BOOL) shouldAutorotate {
return YES;
}
- (UIInterfaceOrientationMask) supportedInterfaceOrientations {
return UIInterfaceOrientationMaskLandscape;
}
- (UIInterfaceOrientation) preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationLandscapeLeft;
}
- (IBAction)pushPortrait:(id)sender
{
UIStoryboard *portraitStoryboard = [UIStoryboard storyboardWithName:@"Portrait" bundle:nil];
PortraitViewController* loginController = [portraitStoryboard instantiateViewControllerWithIdentifier:@"PortraitVC"];
dispatch_async(dispatch_get_main_queue(), ^(){
[self presentViewController:loginController animated:YES completion:nil];
});
}
Контроллер книжного представления:
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view.
}
- (BOOL) shouldAutorotate {
return YES;
}
- (UIInterfaceOrientationMask) supportedInterfaceOrientations {
return UIInterfaceOrientationMaskPortrait;
}
- (UIInterfaceOrientation) preferredInterfaceOrientationForPresentation {
return UIInterfaceOrientationPortrait;
}
(В готовом проекте push-код может быть вызван из фонового потока, таким образомнеобходимость "get_main_queue")
Пример проекта имеет альбомную ориентацию с кнопкой. При нажатии на кнопку должен появиться портретно-ориентированный контроллер вида, но, к сожалению, он появляется в ландшафтном режиме.