我有一个UINavigationController。我把VC1设置为根视图控制器,然后从VC1编程加载VC2,并使用自定义动画从VC1到VC2进行转换。一切都很好。
现在,我想在两者之间实现自定义动画,如下所示:
总的来说,VC1滑出视图,而VC2在其下方。就像一叠纸片,你滑动第一张纸片(VC1),然后揭示下面的纸片(VC2)。
所以我尝试了以下代码,它是从VC1调用以便进入VC2的。但是它存在问题:
问题如下:
现在,我想在两者之间实现自定义动画,如下所示:
![Custom animation](https://istack.dev59.com/qJbVe.webp)
所以我尝试了以下代码,它是从VC1调用以便进入VC2的。但是它存在问题:
MyVC2 *vctwo = [[[MyVC2 alloc] init] autorelease];
CATransition *transition = [CATransition animation];
transition.duration = 1;
transition.timingFunction = [CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut];
transition.type = kCATransitionReveal;
transition.subtype = kCATransitionFromRight;
transition.delegate = self;
[self.navigationController.view.layer addAnimation:transition forKey:nil];
[[self navigationController] pushViewController:vctwo animated:YES];
问题如下:
- VC2在后台中没有固定。即使我指定了kCATransitionReveal,它还是会滑动进来。我希望VC2完全固定在后台。
- VC1淡出。我不知道原因。我没有使用kCATransitionFade等,所以我看不到淡出来自哪里。