我在Storyboard中有几个UIViewControllers。 我没有使用导航控制器,只是简单的Segues来显示它们并放松。
然而,每次显示/展开视图时,它都会完全重新加载。
我希望"加载"只是第一次显示,然后 我移动到其他视图控制器时隐藏/显示。
如何使用Storyboard和Swift 2完成这项工作?
答案 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上使用它们。