我想执行push segue但是修改动画,使得两个视图控制器在动画期间不会重叠,而是第二个视图控制器"推动"屏幕上的第一个视图控制器完全在左侧的平面上?
当您询问正在播放的电影然后点击其中一部电影时,Siri会显示此动画,然后当您点击烂番茄时再次显示此动画。请注意,它完全支持通过滑动后退手势进行交互式导航。
我想学习如何完全复制这个,但不知道从哪里开始。我想知道UIViewControllerTransitioningDelegate
是否会在这里发挥作用以获得视图控制器之间的自定义转换?请注意,我只需要支持iOS 8+,这个segue在Storyboard中定义。
答案 0 :(得分:0)
这应该是它,如果不是,你可以使用参数:
UIViewController *vc = ...
UINavigationController *currentNavigationController = ...
CATransition* animation = [[[CATransition alloc] init] autorelease];
[animation setType:kCATransitionPush];
[animation setSubtype:kCATransitionFromLeft];
[animation setTimingFunction:[CAMediaTimingFunction functionWithName:kCAMediaTimingFunctionEaseInEaseOut]];
[animation setDuration:0.5f];
[currentNavigationController.view.layer addAnimation:animation forKey:nil];
[currentNavigationController pushViewController:vc animated:NO];