我在我的应用程序中使用带有动画过渡的自定义转场。我对三个 UIViewController 之间的导航有疑问。假设我们在 Storyboard 中有这样的结构。
.
在文字中我们这样使用它:
- 单击Main[To Scene 1] 调用Custom Segue 并转到Scene 1
- 单击Scene1[To Main] 调用Unwind Segue 并转到Main
- 单击 Main[To Scene 2] 调用另一个 Custom Segue 并转到Scene 2
- 单击Scene2[到场景 1] 调用另一个自定义 Segue 并转到场景 1
问题来了
- 我们点击 Scene1[To Main] 并调用 Unwind Segue 并转到Scene 2 而不是 Main (对于这个架构没问题,但这不是我想要的行为)
那么问题是如何实现这样的行为呢?
将一个额外的 Segue 从 Scene1[To Main] 放到 Main 并检查它来自哪个 ViewController,然后调用这个 Segue(对于 VC Scene2) 或 Unwind(对于 VC Main)?
或者有更优雅的方式来做到这一点?
最佳答案
1. 为什么不将初始 View Controller 嵌入到导航 Controller 中...并为您节省 segues...您只需按“后退”按钮即可..
转到您的 Storyboard...单击您的主视图 Controller ,选择编辑器,转到“嵌入”并选择导航 Controller 。
- 如果您没有导航栏...并且如果 unwind segue 给您带来了一些问题,只需从您的场景 1 创建另一个 segue,回到您的主场景,然后在您的 Scene One 上调用该 segue “到主”按钮。
并确保你的两个 unwind segues 没有完全相同的名字..
关于ios - Swift - 三个 UIViewController 之间的自定义 Segues,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31494089/