切换视图控制器而不创建新实例

时间:2015-04-02 09:22:45

标签: ios uiviewcontroller navigation

在我的应用程序中使用三个视图控制器。我刚刚使用故事板segues创建了导航。使用segues导航到其他视图时为视图控制器创建新实例。考虑从A-> B-C导航。如何从已经保留在内存中的C导航到A或B? 注意:这里我无法使用dismissviewcontroller来删除C的实例。这样我的导航应该是已经创建的实例。

2 个答案:

答案 0 :(得分:1)

根据您的描述,您应该有一个自定义控制器来管理显示的视图控制器,并允许视图控制器在彼此之间切换 - 有点像自定义标签栏控制器,但没有可见的标签栏...

此自定义控制器将首次按需创建视图控制器,然后将它们存储为实例变量,因此下次请求它们时可以重复使用它们。

在这个模型中,你没有“回归”的概念。因此,您只需要当前显示的视图控制器和其他一些可以切换到的视图控制器。

答案 1 :(得分:0)

如果你想去A,你可以随时使用

[self.navigationController popToRootViewControllerAnimated:YES];(It will take programming control to root of navigation controller which is A in your case)

如果你想去B [self.navigationController popViewControllerAnimated:YES];(它只会弹出当前视图控制器)