如何使用Storyboard视图控制器而不会在每次显示时重新加载

时间:2016-03-16 21:38:59

标签: ios swift

我在Storyboard中有几个UIViewControllers。 我没有使用导航控制器,只是简单的Segues来显示它们并放松。

然而,每次显示/展开视图时,它都会完全重新加载。

我希望"加载"只是第一次显示,然后 我移动到其他视图控制器时隐藏/显示。

如何使用Storyboard和Swift 2完成这项工作?

1 个答案:

答案 0 :(得分:0)

假设你总是有一个基础(菜单或其他东西)UIViewController,我会使用UINavigationController并在这个菜单控制器中保留对创建的UIViewControllers的可选引用,如:

var firstViewController : VC1?
var secondViewController : VC2?

你应该创建一个函数来获取那些视图控制器,如:

func getVC1Instance() {
   return firstViewController ?? firstViewController = self.storyboard.instantiateViewControllerWithIdentifier("VC1Identifier")
} 

然后,当您单击一个应该转到VC1的按钮时,您应该

self.navigationController?.pushViewController(getVC1Instance())

我不知道你的用例是什么,但我真的不建议保留屏幕上没有显示的UIViewControllers。如果您需要保持其状态,只需使用NSUserDefaults / Singleton模式将数据存储为某些文本字段中的文本,然后在viewDidLoad上使用它们。