我正在使用类似的方法描述here从一个视图控制器到另一个视图控制器的动画:
UIWindow *window = (UIWindow *)[[UIApplication sharedApplication].windows firstObject];
[UIView transitionFromView:window.rootViewController.view
toView:vc.view
duration:0.65f
options:UIViewAnimationOptionTransitionCrossDissolve // transition animation
completion:^(BOOL finished){
window.rootViewController = vc;
}];
查看UIViewAnimationOptions我没有找到默认动画的选项,这与UINavigationController
执行相同操作时会发生。
是否可以获得相同的动画行为(向左移动视图)?怎么样?
我用this动画尝试了它:
[UIView animateWithDuration:0.65 animations:^{
view.transform = CGAffineTransformMakeTranslation(-view.frame.size.width, 0);
} completion:^(BOOL finished) {
// do something
}];
但在翻译到新视图时,背景是完全黑色的,而不是将其他视图控制器带入。
答案 0 :(得分:0)
现在我以不同的方式做这件事。我从导航控制器及其根视图开始。然后我在堆栈上推送另一个视图控制器。在这个新视图控制器的viewDidAppear
中,我正在从导航堆栈中删除第一个视图控制器。一个缺点:您可以在短时间内看到后退按钮。
我试过的动画解决方案需要动画的其他视图控制器。此外,我的视图问题非常不正确(因为edgesForExtendedLayout
)。