Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/93.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios Swift-如何在实例化新视图控制器时保留对旧视图控制器的引用?_Ios_Iphone_Swift_Uiviewcontroller - Fatal编程技术网

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

Ios Swift-如何在实例化新视图控制器时保留对旧视图控制器的引用?,ios,iphone,swift,uiviewcontroller,Ios,Iphone,Swift,Uiviewcontroller,我尝试使用以下代码以编程方式实例化与原始视图控制器类型相同的新视图控制器: self.navigationController!.pushViewController(self.storyboard!.instantiateViewControllerWithIdentifier(StoryboardKeys.ViewIdentifier), animated: true) 我希望用户能够回到我原来的视图控制器,所以我想知道是否有办法将旧的视图控制器保留在内存中?同样,如果我以这种方式实例化视

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

self.navigationController!.pushViewController(self.storyboard!.instantiateViewControllerWithIdentifier(StoryboardKeys.ViewIdentifier), animated: true)
我希望用户能够回到我原来的视图控制器,所以我想知道是否有办法将旧的视图控制器保留在内存中?同样,如果我以这种方式实例化视图控制器,我是否可以进入prepareforsegue(以编程方式添加后退按钮)?如果没有,我如何在按下此视图控制器时添加后退按钮


我怀疑有更好的方法,所以如果有,请让我知道。非常感谢您的帮助

UINavigationController自动将视图控制器作为堆栈进行维护,因此不必担心视图控制器的内存管理。
仅当您需要自定义后退按钮时,否则您不必自己添加后退按钮,一切都已完成。

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

但如果我想将完全相同的视图控制器的实例推到顶部,该怎么办?我看不出您这样做的原因。但如果必须,可以初始化一个新的视图控制器。如果将当前视图控制器推到堆栈,我认为会出现异常。如果要返回,可以使用self.navigationController?.dismissViewControllerAnimated(true,completion:nil)