如何从非初始的NavigationController场景

时间:2017-09-01 14:56:39

标签: ios swift uinavigationcontroller segue xcode-storyboard

我试图模仿Apple默认应用中的导航逻辑"照片"。以下是应用导航逻辑的说明。

enter image description here

当您第一次启动应用程序时,您将立即登陆" Moments"视图位于应用程序中第三高的层次结构级别。它非常有趣,因为整个"照片" tab似乎嵌入到单个NavigationController中。

但是,如果所有场景都嵌入到单个NavigationController中,您如何从非初始场景开始?

这是我的hackish实现,没有将场景嵌入任何NavigationController(所有segues都显示为showenter image description here

这会导致我想要的行为,但我不确定内存问题。我是否每次循环分配新的VC?故事板看起来并不合适。

作为一个答案,一个简单的故事板捕获与简短的解释将很好。

1 个答案:

答案 0 :(得分:2)

正如我在评论中所说,您需要修改.viewControllers的{​​{1}}属性,您可以使用UINavigationController方法执行此操作,或直接修改setViewControllers(_:animated:)属性.viewControllers 1}}将是rootViewControllerviewControllersArray[0]将是topViewController

此属性说明和详细信息可以在viewControllersArray[count-1]文档

中找到
UINavigationController
  

属性

     

当前在导航堆栈上的视图控制器。

<强>声明 SWIFT

viewControllers
  

讨论根视图控制器位于数组中的索引0处,后视图控制器位于索引n-2处,顶层控制器位于   index n-1,其中n是数组中的项数。

     

为此属性分配新的视图控制器数组是   相当于调用setViewControllers:animated:方法   动画参数设置为false。

示例

var viewControllers: [UIViewController]