如何在没有动画的情况下执行 unwind segue?

Posted

技术标签:

【中文标题】如何在没有动画的情况下执行 unwind segue?【英文标题】:How to perform unwind segue without animation? 【发布时间】:2015-12-27 19:13:57 【问题描述】:

如何在没有任何动画的情况下执行 unwind segue。我尝试设置一个放松转场,并在右侧的情节提要中取消选中“动画”,但它仍然是动画的(它向下滑动),我该如何解决这个问题?

【问题讨论】:

如下所述,取消选中动画应该足以禁用动画。您能否提供有关您的设置的更多信息,或者附上一个演示该问题的示例项目? 我可以确认动画复选框产生了预期的行为(我刚刚在自己的项目中尝试过)。您的代码中一定有一些事情没有被您的问题提出。 【参考方案1】:

使用 Xcode 7,在 ios 模拟器上运行,可以按预期工作。只需在 Attributes Inspector 的 Interface Builder 中取消选中 unwind segue 上的“Animates”,就会导致模态显示的视图控制器立即消失,而不是在屏幕上显示动画。

请注意,此行为在 iOS 9 中是新的。对于 iOS 8,它仍会为展开解除设置动画。感谢 Dave G 注意到这一点。

我附上了一个示例项目,演示了它是如何工作的,您可以将其与您的项目进行比较以确定差异所在。

Sample Project

【讨论】:

根据我尝试过的项目,展开转场的“动画”复选框仅适用于 iOS9 及更高版本。取消选中 Show 的“动画”也需要 iOS9。奇怪的是,您可以取消选中模式转场。 感谢@DaveG,我也可以确认这一点。我会更新答案。 我使用的是 iOS 10,它偶尔会工作,但并不一致。有什么新的解决方案吗?

以上是关于如何在没有动画的情况下执行 unwind segue?的主要内容,如果未能解决你的问题,请参考以下文章

故事板 - 如何在没有动画和显示屏幕的情况下自动执行转场

unwind segue vs. popViewController 动画

如何以编程方式执行Unwind segue?

iOS - 如何在 Unwind Segue 中控制动画类型?

在 unwind segue 之后执行 push segue

在没有 UINavigationController 的情况下推送 Segue 动画