展开到不同导航堆栈中的viewController不起作用

时间:2015-08-24 08:41:22

标签: xcode swift uiviewcontroller uinavigationcontroller unwind-segue

enter image description here

如图所示,我试图将两个viewControllers连接到右侧的viewController,作为viewControllers之间的菜单。

首次运行应用时,它会将第一个视图控制器加载到顶部。按钮将以模态方式显示菜单,并且根据按下的按钮(我计划添加更多),将显示相应的viewController。按下VC2的第一次,它将加载第二个viewController,但是当再次调用菜单并按下VC2时,我希望它放松而不是重新加载视图控制器。

我已经设法放松到第一个viewController但是当试图放松到第二个viewController时,操作被忽略。对你的帮助表示感谢。谢谢。

1 个答案:

答案 0 :(得分:0)

您无法展开之前未显示的视图控制器,因为所需的目标VC不会保留在导航控制器堆栈中。展开segue旨在“弹出”导航历史记录中的几个步骤。在您的场景中,唯一可用的弹出窗口是VC1。

考虑到UINavigationController对象可以毫不费力地提供这种行为,您可能还想查看“菜单”概念。您也不需要两个单独的UINavigationController对象来实现您想要的目标。

为此,只需将菜单VC连接为UINavigationController的根视图控制器,然后将菜单按钮连接到VC1& VC2。然后,您将能够轻松地在三个屏幕之间移动(例如,见下文)。

enter image description here