如何在 Swift 中转到导航控制器的根目录?

How to segue to the root of navigation controller in Swift?

我正在应用程序中构建表单。 当用户点击最后一个 screen4 的按钮时,它应该再次从 screen1 开始。 当前有一个故事板参考(红色箭头)从故事板 3 到故事板 1。问题是在导航控制器内,后退按钮链接到 screen4。

那么如何从故事板 3 中的屏幕 4 中的按钮执行到故事板 1 中的屏幕 1(橙色箭头)以再次启动表单?

如果这是您应用程序其余部分的单独流程,您可以为此流程创建一个新的导航控制器。

创建一个以屏幕 1 作为其 rootViewController 的新 navigationController。然后将 navigationController 设置为该故事板的 initialViewController。现在,这些屏幕集合将作为您主应用程序中的独立流程。这样做,您可以简单地在屏幕 4 的按钮内调用 self.navigationController?.popToRootViewController(animated: true),到第一个屏幕 return。



也仅供参考,

  • 红色 segue 有一个返回按钮 4 的原因是因为故事板引用创建了 viewController 的新实例。您不是 return 转到此处的第 1 个,而是将屏幕 1 的新副本添加到导航堆栈中。
  • 我不知道它是否只是绘图,但每个故事板有 1 个屏幕是一种浪费。故事板被设计为每个内部都有许多屏幕