复杂的故事板导航

时间:2014-05-10 19:16:19

标签: ios objective-c uinavigationcontroller storyboard

我对iOS很新,但已被置于复杂的应用程序中。我在故事板,赛段,视图等上看到的所有教程都非常简单。

我已经能够使用segue显示视图并返回,但管理层并不关心segues。在移动复杂的应用程序后,用户应该能够跳转到应用程序的另一部分,就好像用户已经返回两次然后选择另一个视图,然后选择另一个视图。

我只是迷失了如何实现这一目标。在故事板编辑器中添加新的直接segue?或者以编程方式创建的自定义segue有什么关系?我需要一些关于方向的提示,比如要查看什么方法,google什么或高级教程等等。提前谢谢。

1 个答案:

答案 0 :(得分:3)

通常,导航控制器允许堆叠中的单个视图控制器。这适用于主细节应用程序和线性工作流程。

当一个视图控制器以类似Web的方式连接到另一个视图控制器时,事情变得难以管理。

如果您想依赖视图控制器堆栈的自动管理但是一次返回多个项目,请查看展开的segues: What are Unwind segues for and how do you use them? - 答案说得很清楚。

如果您可以在圈子中导航,那就会变得更复杂。实质上,您的导航控制器会将已经实例化的类的新对象放入堆栈,以便将其痕迹路径保持一直返回到根视图控制器。

在某些情况下,这是不可取的。您可以使用UINavigationControllerDelegate在满足特定条件时从堆栈中删除项目。

假设您有4个视图控制器,A - D.可能的连接是:A - B - C - {B,D} - A.从D,当你完成后,你想要放松到A.从C,你可能想要在B添加一个额外的项目,但你不想跟踪所有BCBCBC -...连接。在这些情况下,更改导航控制器历史记录非常有用,并且不会打破"返回"的预期行为。按钮。