У меня есть контроллер основного вида, который находится в альбомной ориентации (все приложение находится в альбомной ориентации влево/вправо).
Этот основной вид представляет собой модальный вид, используя:
ModalViewController *modalVC = [[ModalViewController alloc] init];
[modalVC setModalTransitionStyle:UIModalTransitionStyleCrossDissolve];
[self presentModalViewController:modalVC animated:YES];
В iOS 5.0* это работает именно так, как я и ожидал: основной вид находится в альбомной ориентации, а модальный вид — в альбомной.
В iOS 5.1 основной вид мгновенно поворачивается на 90º влево, а модальный вид также поворачивается на 90º и обрезается. Когда модальный вид закрывается, возвращается основной вид, нормальный и в альбомной ориентации.
Я пробовал все виды мутаций shouldAutorotateToInterfaceOrientation, и это не дало никакого эффекта. Я пока оставил так:
- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{
return (interfaceOrientation == UIInterfaceOrientationLandscapeRight) || (interfaceOrientation == UIInterfaceOrientationLandscapeLeft);
}
Я просто не могу понять это, у меня никогда не было проблем, пока я не установил iOS 5.1 на свой iPhone и не запустил приложение в первый раз на нем.
Заранее спасибо!
*Подтверждено с помощью симуляторов iPhone 5.0 и 5.1.