我已经实现了一个容器视图控制器(ios5),现在我尝试实现自定义动画/转换来切换视图控制器。
但是在实现任何涉及 UINavigationController 的动画时,我遇到了一个问题,结果不符合预期。例如,如果我在显示带有导航栏的控制器时执行从左侧翻转的动画,导航栏的位置会保持在原始位置下方 44pxs 并且在执行动画后导航栏将平滑地移动到原始位置,这确实是丑陋的...
我执行的每个动画都会发生这种情况,所以我想它必须只与导航控制器相关。
这是我用于翻转过渡的代码
[self transitionFromViewController:fromViewController
toViewController:toViewController
duration:1.0
options:UIViewAnimationOptionTransitionNone
animations:^{
[UIView beginAnimations:@"animation2" context:nil];
[UIView setAnimationCurve:UIViewAnimationCurveEaseInOut];
[UIView setAnimationDuration: 0.7];
[UIView setAnimationTransition:UIViewAnimationTransitionFlipFromLeft forView:containerView cache:NO];
[UIView commitAnimations];
}
completion:^(BOOL finished) {
[toViewController didMoveToParentViewController:self];
[fromViewController removeFromParentViewController];
}];
我还尝试了以下
[self transitionFromViewController:fromViewController
toViewController:toViewController
duration:1.0
options:UIViewAnimationOptionTransitionFlipFromLeft
animations:^{
}
completion:^(BOOL finished) {
[toViewController didMoveToParentViewController:self];
[fromViewController removeFromParentViewController];
}];