ios - 从一种模态 VC 到另一种模态 VC 的快速过渡

标签 ios swift

我有一个基本场景:

我使用 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 模型,因为我自己展示的模式是页面 View Controller 并且具有依赖 View 的整个层次结构;用户永远不会“返回”;所以我真的很想尽快展示新模式...

更新 我的问题不是关于如何控制或选择动画。我的问题是关于模态之间没有延迟。

最佳答案

标签栏 Controller 是一种内置的 View Controller 架构,它可以在没有过渡的情况下切换 View 。所以只要把你的 View Controller 变成一个标签栏 Controller ——没有可见的标签栏!要更改为另一个 View Controller ,只需更改选项卡(在代码中)。变化是即时的。

这个截屏视频清楚地表明这是按描述工作的。我们展示了一个 View Controller (黄色)。然后我们立即在两个 View Controller (绿色和黄色)之间来回切换作为呈现的 View Controller 。最后,我们忽略正在显示的任何一个(绿色或黄色)。我用简单的按钮来完成这一切,但这只是为了演示;显然你可以随心所欲地这样做。重要的是架构。

enter image description here

关于ios - 从一种模态 VC 到另一种模态 VC 的快速过渡,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59185999/

相关文章:

ios - Cocos2d游戏两个场景之间的ReplaceScene

iphone - NSNotification 未在 View Controller 中接收来自 appDelegate 的信息

php - 确保 http(s) 请求来 self 的 iOS 应用

ios - 如何在 Swift、SpriteKit 中将矩形附加到圆形并与其一起旋转

ios - 为什么我的 UITableView 没有完全加载单元格内容?

iphone - Apple AppStore 和开发者身份识别政策

swift - Cocoa:在 CGEvent 中模拟 Command+Tab

ios - Swift:长按音量按钮然后释放

ios - 没有参数的swift4选择器函数

ios - 如何将图像从 tableView 传输到另一个 imageViewController?