2012-03-14 3 views
3

У меня есть главный контроллер представления, который находится в ландшафте (все приложение - влево/вправо).Модальный контроллер просмотра некорректно вращается в iOS 5.1, а не в 5.0

Это основной вид представляет модальный вид с помощью:

ModalViewController *modalVC = [[ModalViewController alloc] init]; 
[modalVC setModalTransitionStyle:UIModalTransitionStyleCrossDissolve]; 
[self presentModalViewController:modalVC animated:YES]; 

В прошивкой 5.0 *, это работает именно так, как я хотел бы ожидать, основной вид в пейзаж и модальный вид появляется в ландшафте.

В iOS 5.1 основной вид мгновенно поворачивается на 90º влево, а модальный вид затем поворачивается на 90º и обрезается. Когда модальный вид отклоняется, основной вид возвращается и является нормальным и в ландшафте.

Я пробовал все виды мутаций mustAutorotateToInterfaceOrientation и не имеет никакого эффекта. Я оставил его, как это сейчас:

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation 
{ 
    return (interfaceOrientation == UIInterfaceOrientationLandscapeRight) || (interfaceOrientation == UIInterfaceOrientationLandscapeLeft); 
} 

Я просто не могу понять это, никогда не было проблемы, пока я просто положил IOS 5.1 на моем iPhone и побежал приложение в первый раз на нем.

Заранее благодарен!

* Это подтверждается с помощью 5.0 и 5.1 картинки имитаторы

+0

Только что обнаружил, что в iOS 5.1, mustAutorotateToInterfaceOrientation в родительском вызове вызывается ** снова **, когда появляется модальное представление и все испортит. В 5.0 метод не вызывается после появления родительского – REDMX

ответ

-1

Убедитесь, что вы показываете контроллер представления модально (без анимации), и, прежде чем это сделать:

[window makeKeyAndVisible] 

Так называют

[uiviewcontroller presentViewController:modalViewController animated:NO completion:nil]; 
[window makeKeyAndVisible];