1

我正在使用 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:被调用时,即使设备处于横向,整个视图也会旋转以再次进入横向视图。

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

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

4

0 回答 0