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

标签 xcode swift uiviewcontroller uinavigationcontroller unwind-segue

enter image description here

如图所示,我试图将两个 viewController 连接到右侧的 viewController,该 viewController 充当 viewController 之间的菜单。

当应用程序首次运行时,它将加载顶部的第一个 View Controller 。按钮将以模态方式显示菜单,并且根据按下的按钮(我计划添加更多),将显示相应的 viewController。第一次按下 VC2 时,它将加载第二个 viewController,但是当再次调用菜单并按下 VC2 时,我希望它展开而不是重新加载 View Controller 。

我已成功展开到第一个 viewController,但是当尝试展开到第二个 viewController 时,该操作被忽略。对你的帮助表示感谢。谢谢。

最佳答案

您无法展开到先前未呈现过的 View Controller ,因为所需的目标 VC 将不会保存在导航 Controller 堆栈中。展开转场旨在在导航历史记录中“弹出”前几步。在您的场景中,唯一可用的弹出窗口是 VC1。

考虑到 UINavigationController 对象可以轻松提供此行为,您可能还想检查一下“菜单”概念。您也不需要两个单独的 UINavigationController 对象来实现您想要的。

为此,只需将菜单 VC 连接为 UINavigationController 的 Root View Controller ,然后将菜单按钮连接到 VC1 和 VC2。然后您将能够轻松地在三个屏幕之间移动(例如见下文)。

enter image description here

关于xcode - 在不同的导航堆栈中展开到 viewController 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32177911/

相关文章:

ios - Swift:在应用程序之间共享身份验证状态

iphone - 打开和关闭其他 UIViewController - 除了使用协议(protocol)和委托(delegate)之外的任何其他方法?

ios - 如何创建一个基础 View Controller

objective-c - Xcode:将图像设置为 Touch Bar 上的按钮(适用于新 MacBook Pro)

ios - 将 URL 从 ViewController 1 中的 UIWebView 1 传递到 ViewController 2 中的 UIWebView 2

ios - 在 swift 中使用新的 Podfile 时如何忽略警告?

ios - Storyboard中的 UITableViewController tableView 大小

ios - 使用 Storyboards 的具有不同单元格原型(prototype)和高度的 UITableView

ios - 索引处理文件 Xcode 超慢构建和运行

ios - 如何传递与 UITapGestureRecognizer 关联的对象