我想执行一个 push segue 但修改动画使得两个 View Controller 在动画期间不重叠,而是第二个 View Controller 将第一个 View Controller “推”出屏幕完全向左平面?
当您询问正在播放的电影然后点击其中一部时,Siri 会显示此动画,然后当您点击烂番茄时再次显示此动画。请注意,它完全支持通过向后滑动手势进行交互式导航。
我想学习如何准确地复制它,但不知道从哪里开始。我想知道 UIViewControllerTransitioningDelegate
是否会在这里发挥作用以获得 View Controller 之间的自定义转换?请注意,我只需要支持 iOS 8+,并且这个 segue 在 Storyboard 中定义。
最佳答案
这应该是它,如果不是你可以玩参数:
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];
关于ios - 推送导航动画而不重叠 UIViewControllers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27520198/