Я хотел бы показать другой полноэкранный вид, когда устройство iOS повернуто в горизонтальную ориентацию, и вернуться к предыдущему виду, когда устройство повернуто обратно в альбомную.
Я в основном заставил его работать, используя один контроллер представления и два представления, а затем установил self.view контроллера представления в - shouldAutorotateToInterfaceOrientation: в соответствующее представление.
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if(((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) ||
(interfaceOrientation == UIInterfaceOrientationLandscapeRight))){
self.view = landscapeView;
}else if(((interfaceOrientation == UIInterfaceOrientationPortrait) ||
(interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown))){
self.view = portraintView;
}
return YES;
}
Тем не менее, в идеале я хотел бы, чтобы ландшафтный вид имел свой отдельный контроллер представления для управления видом.Я попытался выдвинуть контроллер представления модально и отклонить его в shouldAutorotateToInterfaceOrientation:, но контроллер горизонтального представления не появляется в правильной ориентации (он все еще думает, что устройство в портретной ориентации)
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
if(((interfaceOrientation == UIInterfaceOrientationLandscapeLeft) ||
(interfaceOrientation == UIInterfaceOrientationLandscapeRight))){
[self presentModalViewController:landscapeViewController animated:YES];
}else if(((interfaceOrientation == UIInterfaceOrientationPortrait) ||
(interfaceOrientation == UIInterfaceOrientationPortraitUpsideDown))){
[self dismissModalViewControllerAnimated:YES];
}
return YES;
}
Затем, когда я возвращаюсь к портретному изображению, он все еще думает, что устройство находится в альбомной ориентации.