【发布时间】:2018-10-17 11:34:16
【问题描述】:
如何将呈现模态视图 (MV) 的 UIViewController (VC) 推送到具有单个从左到右过渡动画的屏幕?
我试过了:
设置MV的模态过渡风格,然后将两个控制器都添加到导航控制器的
viewControllers中。然而,这导致 MV 只是一个控制器,就像堆栈中的任何其他控制器一样被解雇。我曾尝试从 VC 中呈现 MV,但没有动画,然后将 VC 添加到
viewControllers并呈现如上所示的堆栈。这导致当开始向 VC 过渡时,MV 会立即呈现,而 VC 本身会按预期动画到屏幕上。例如。 MV滑入时不跟随VC。我曾尝试在启用动画的情况下从 VC 呈现 MV,但这会导致两个过渡:首先 VC 动画到屏幕,然后 VC 向上滑动。
我没有想法,但我想要一个原生且干净的解决方案:当 VC 完全被 MV 覆盖时,如何通过一次正常的从左到右推动转换到 VC?
关键是MV和VC一起做动画; MV 会出现并表现得像一个全屏子视图,但是当它被关闭时,它会像任何其他模态视图控制器一样在屏幕外显示动画。
【问题讨论】:
-
您是否尝试使用自定义动画“present()”VC,而不是“自下而上”动画?还是带有通常执行“从右到左”动画的导航控制器的“push()”?
-
根据 Apple 文档,有两种显示 VC 的方法:呈现或嵌入。我相信嵌入不会允许我使用 UIKit 动画来关闭视图;我将不得不自己动手(这不是真正的问题,只是我觉得不太干净的解决方案)。所以我需要以这样一种方式呈现的视图,它可以像任何模态视图一样被关闭,但与它的呈现视图控制器一起显示和动画。
标签: ios swift xcode navigation uikit