如何快速维护视图层次结构
Posted
技术标签:
【中文标题】如何快速维护视图层次结构【英文标题】:How to maintain view hierarchy in swift 【发布时间】:2016-12-15 10:30:14 【问题描述】:假设我有 3 个视图控制器:VC1、VC2、VC3。 正常流程是 VC1 连接到 VC2,VC2 连接到 VC3。用户可以选择从 VC3 展开到 VC2。但是,在一个特定实例中,VC1 会推送到 VC3。在这种情况下,对 VC2 的 unwind segue 不起作用。我会假设因为 VC2 永远不会被添加到 VC 堆栈中。还有哪些其他替代方法可以执行以下操作:VC1->VC3->VC2。当推送到更下游的视图控制器时,是否有将链中的所有视图控制器添加到堆栈中? 谢谢
【问题讨论】:
使用可以直接从VC3到VC1使用unwind segue
。在VC1中编写方法(和VC2中写的类似),并连接VC3的出口
我需要从 VC3 到 VC2 直接从 VC1 到 VC3 之后
您也可以以编程方式执行转场。当 unwind segue(VC3 到 VC1)发生时,您可以执行另一个 segue(VC2 到 VC3)。
【参考方案1】:
我在我的应用上使用了以下方法,效果很好。
vc2.navigationController.pushViewController(vc3, animated: true)
vc1.navigationController?.pushViewController(vc2, animated: true)
【讨论】:
我已经尝试过类似的方法,现在看来可行。我只是将所有必要的 VC 推入堆栈。我不知道这是否是最有效的解决方案以上是关于如何快速维护视图层次结构的主要内容,如果未能解决你的问题,请参考以下文章