2010-12-01 47 views
0

我在应用程序的keyWindow上完成了动画。当keywindow转换时iPad定位通知丢失

[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_不会收到方向通知。为什么?

+0

您的意思是他们在动画之后没有收到方向更改通知。如果动画未执行,他们会收到吗? – TechZen 2010-12-01 21:02:59

回答

0

嗯,这不是一个很好的解决方案,但我找到了一种方法来避免这个问题。首先,我认为问题的出现是因为,在动画播放时,两个视图控制器都会收到定向通知,而我想,在窗口中添加和删除并提出问题。我不知道这是否是一个与视图层次相关的问题(我想这是正确的,但我不确定)。

因此,我使用的解决方案是将LoginViewController作为SplitViewController的ModalViewController(即主控制器),并在显示时使用FlipHorizo​​ntal转换。

解决了这个问题。