我正在使用 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:
被调用时,即使设备处于横向,整个视图也会旋转以再次进入横向视图。
在我关闭模态视图控制器之前,有什么方法可以将父视图控制器的方向(存储)更改为横向?
或者我在实现我的自定义动画时做错了什么?