Уведомления об ориентации iPad теряются при переходе для keyWindow - PullRequest
0 голосов
/ 01 декабря 2010

У меня есть анимация поверх ключевого окна приложения.

[UIView beginAnimations:kAnimationLogin context:nil];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:window_ cache:NO];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:1.0];

[window_ addSubview:splitViewController_.view];

[UIView commitAnimations]; 

[loginViewController_.view removeFromSuperview];

Это работает нормально.Затем, если пользователь выходит из системы, переход происходит в обратном порядке

[UIView beginAnimations:kAnimationLogout context:nil];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromRight forView:window_ cache:NO];    
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration:1.0];

[window_ addSubview:loginViewController_.view];

[UIView commitAnimations];

[splitViewController_.view removeFromSuperview];

Вот проблема.Теперь loginViewController_ и splitViewController_ не получают уведомлений об ориентации.Почему?

1 Ответ

0 голосов
/ 13 декабря 2012

Ну, это не очень хорошее решение, но я нашел способ избежать этой проблемы. Прежде всего, я думаю, что проблема возникает из-за того, что во время анимации оба контроллера представления получают уведомления об ориентации, в то время как, я полагаю, добавляя и удаляя окно и из окна, возникает проблема. Я не знаю точно, является ли это проблемой, связанной с иерархией представления (думаю, это правильно, но я не уверен) или нет.

Итак, решение, которое я использую, состоит в том, чтобы поместить LoginViewController в качестве ModalViewController в SplitViewController, который является основным контроллером, и использовать переход FlipHorizontal при показе.

Это решает проблему.

...