【问题标题】:iPad orientation notifications lost when transition for keyWindow转换 keyWindow 时 iPad 方向通知丢失
【发布时间】:2010-12-01 18:05:34
【问题描述】:

我在应用的 keyWindow 上做了一个动画。

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

【问题讨论】:

  • 你的意思是他们在动画之后没有收到方向变化通知。如果不执行动画,他们会收到吗?
  • 是的,techZen,这就是重点,如果我不进行转换,则不会出现方向问题,但如果我这样做,问题就会开始。

标签: ipad uiview transitions


【解决方案1】:

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

所以,我使用的解决方案是将LoginViewController作为SplitViewController的ModalViewController,即主控制器,并在显示时使用FlipHorizo​​ntal过渡。

这样就解决了问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-13
    • 1970-01-01
    • 2012-08-23
    • 2021-07-09
    • 1970-01-01
    • 1970-01-01
    • 2015-12-07
    相关资源
    最近更新 更多