Ios 在序列图像板中导航到viewcontroller始终会创建新的viewcontroller,如何重用以前的viewcontroller?

Ios 在序列图像板中导航到viewcontroller始终会创建新的viewcontroller,如何重用以前的viewcontroller?,ios,navigation,storyboard,Ios,Navigation,Storyboard,我有一个导航应用程序。根视图控制器(RootViewController)有一个按钮,用于导航到另一个视图控制器(DetailViewController1)。在XCode情节提要中很容易做到这一点 我的问题是:DetailViewController1在导航到新实例时总是创建新实例。当我尝试另一种方法时,我创建了另一个DetailViewController2类,并在应用程序启动时创建其实例。然后我编写代码来推送DetailViewController2实例,在这种情况下,DetailView

我有一个导航应用程序。根视图控制器(
RootViewController
)有一个按钮,用于导航到另一个视图控制器(
DetailViewController1
)。在XCode情节提要中很容易做到这一点

我的问题是:
DetailViewController1
在导航到新实例时总是创建新实例。当我尝试另一种方法时,我创建了另一个
DetailViewController2
类,并在应用程序启动时创建其实例。然后我编写代码来推送DetailViewController2实例,在这种情况下,
DetailViewController2
只创建一次


问题是:序列图像板上是否有设置,以便在导航到同一视图控制器实例时防止创建该实例?就像我推手动创建的
DetailViewController2

不,没有。要始终推送同一实例,唯一的方法是执行从代码推送,正如您已经做的那样。

为viewcontroller设置故事板id。然后按一下按钮

    myViewController* vc=[self.storyboard instantiateViewControllerWithIdentifier:@"storyboardid"];
    [self.navigationController pushViewController:vc animated:YES];

我明白了,我想确定我是否错过了什么。谢谢,没错。其原因是,默认情况下,当您从UIViewController返回时,iOS会销毁该UIViewController,以便它释放所使用的内存。不建议以这种方式保留ViewController的地址,因为它会创建一个保留周期,从而导致内存浪费。