【发布时间】:2019-12-04 23:21:09
【问题描述】:
我有一个基本场景:
我以模态方式使用self.present(, animated:, completion:) 呈现VC。
有时由于此模态 VC 中的交互,我需要关闭一个模态并打开另一个模态。
所以我做了以下事情:
weak var presenter = self.presentingViewController
let newVc = UIViewController()
presenter?.dismiss(animated: true, completion: {
presenter?.present(newVc, animated: true, completion: nil)
})
这可行,但是当用户看到原始演示者并可以尝试与其交互(打开其他模式...)时,切换 VC 时会出现烦人的延迟。
我尝试设置 animated: false 但这似乎不起作用:/
我真的不能为此切换到UINavigationController 模型,因为我展示自己的模式是页面视图控制器并且具有依赖视图的整个层次结构;用户永远不会“返回”;所以我真的很想尽快展示新的模态......
更新我的问题不是关于如何控制或选择动画。我的问题是关于模态之间没有延迟。
【问题讨论】:
-
您可以将默认动画替换为您想要的任何内容。见developer.apple.com/documentation/uikit/…
-
你可以让你的视图控制器在不同的容器视图中彼此重叠,当你想在它们之间切换时,你可以让你想显示的一个的 alpha 为 1,其余的为 0。