Swift - 如何在实例化新视图控制器时保持对旧视图控制器的引用?

Swift - How to keep reference to old view controller when instantiating new view controller?

我正在尝试使用以下代码以编程方式实例化与我的原始视图控制器类型相同的新视图控制器:

self.navigationController!.pushViewController(self.storyboard!.instantiateViewControllerWithIdentifier(StoryboardKeys.ViewIdentifier), animated: true)

我希望用户能够回到我原来的视图控制器,所以我想知道是否有办法将旧的视图控制器保留在内存中?另外,如果我以这种方式实例化视图控制器,我是否可以准备好(以便以编程方式添加后退按钮)?如果没有,我如何在按下此视图控制器时添加后退按钮?

我怀疑有更好的方法可以做到这一点,如果有的话,请告诉我。非常感谢您的帮助!

UINavigationController 自动将您的视图控制器维护为堆栈,因此不必担心视图控制器的内存管理。 只有你要自定义后退按钮,否则不用自己加后退按钮,都搞定了。

只需在第二个视图控制器中的某处使用 self.navigationController!.popViewControllerAnimated(true)。导航控制器包含一堆视图,您可以使用 self.navigationController!.viewControllers 检索这些视图。您可以随意修改此堆栈。