过渡期间UIView动画的奇怪行为

时间:2012-10-30 14:07:44

标签: iphone ios cocoa-touch uikit core-animation

我正在使用segue(模态)从一个视图控制器导航到下一个视图控制器。但是我使用自定义segue,以便在转换发生时不涉及动画。相反,我在视图控制器(视图)内的子视图上有我自己的动画。这里一切都很好。 但是当我使用dismissModalViewControllerAnimated:从显示的视图控制器移回我的视图控制器时,会出现一个小的打嗝。 以下是我从目标视图控制器调用方法的代码。

[UIView animateWithDuration:1.0 delay:0.0 options:UIViewAnimationOptionTransitionCrossDissolve animations:^{

        [self dismissModalViewControllerAnimated:NO];

    } completion:nil];

我在父视图控制器的viewWillAppear中有以下代码

-(void)viewWillAppear:(BOOL)animated{
    ContainerView *containerView = (ContainerView *)[[[self.view subviews]objectAtIndex:0] viewWithTag:CONTAINER_TAG];

    int i=0;    
    for (UIView *vw in containerView.subviews) {
        [vw setFrame:[[containerView.initialFrameArray objectAtIndex:i] CGRectValue]];
        i++;
    }      
}

只要它处于纵向模式,这也可以正常运行。当它处于任何其他方向时,动画仍然有效但是整个视图还有一个旋转,就像整个设备的方向从纵向更改为当前方向一样。它好像父视图控制器(视图)的方向存储为纵向。当调用dismissModalViewControllerAnimated:时,即使设备处于横向方向,整个视图也会旋转以再次进入横向视图。

在关闭模态视图控制器之前,有没有办法将父视图控制器的方向(存储)更改为横向?

或者我在实现自定义动画时做错了什么?

0 个答案:

没有答案