iOS - 如何在 Unwind Segue 中控制动画类型?
Posted
技术标签:
【中文标题】iOS - 如何在 Unwind Segue 中控制动画类型?【英文标题】:iOS - How to Control the Kind of Animation in an Unwind Segue? 【发布时间】:2015-08-15 03:54:41 【问题描述】:我目前有一个有 3 个视图的应用
-
屏幕 1 - 使用“显示”转场转到屏幕 2
屏幕 2 - 使用“模态”转场转到屏幕 3
屏幕 3
我在屏幕 1 中有一个展开转场,并从屏幕 2 和屏幕 3 调用此展开转场。
目前,当我从屏幕 3 调用屏幕 1 的展开转场时,它会作为一个正在关闭的模态视图进行动画处理。
是否可以让这种展开转场为标准“弹出”转场设置动画,例如当屏幕从正常导航堆栈中弹出时?
【问题讨论】:
如果您正在呈现一个模态视图控制器,它不再是导航控制器层次结构的一部分,因此无法获得您正在寻找的动画。此外,这违反了人机界面设计指南。顺其自然吧。 【参考方案1】:我能够通过为模态视图创建不同的转场来完成我想要的。关于我的界面还有一些我不想解释的额外内容,但 Screen 3 现在取代了 Screen 2,没有模态 segue。然后,当我在屏幕 3 上调用展开转场时,它会使用屏幕 1 中的推送转场展开。
这是我在屏幕 2 和屏幕 3 之间使用的自定义转场:
-(void)perform
UIViewController *sourceViewController = (UIViewController*)[self sourceViewController];
UIViewController *destinationController = (UIViewController*)[self destinationViewController];
UINavigationController *navigationController = sourceViewController.navigationController;
// Pop to root view controller (not animated) before pushing
[navigationController popToRootViewControllerAnimated:NO];
[navigationController pushViewController:destinationController animated:NO];
【讨论】:
以上是关于iOS - 如何在 Unwind Segue 中控制动画类型?的主要内容,如果未能解决你的问题,请参考以下文章
Unwind segue 在 Swift 3 和 iOS 10 中不起作用