我的应用程序中有四个viewControllers。现在假设用户当前在第二个viewController上,他终止了应用程序。
现在我如何保存这个状态,这样当用户重新打开应用程序时,他应该会看到第二个viewContoller,并且应该能够导航回第一个viewContoller。
我想到的解决方案是简单地在userDefaults中保存当前屏幕的变量,然后使viewController成为rootViewController。但我知道它不是正确的解决方案,我也会失去导航。 请指导我,谢谢。
答案 0 :(得分:0)
如果还没有,请创建一个名为BaseViewController的类,该类应该从所有UIViewControllers扩展:
class BaseViewController: UIViewController {
override func viewDidAppear(animated: Bool) {
super.viewDidAppear(animated)
// always remember last controller shown
NSUserDefaults.standardUserDefaults.setObject(classForCoder(), forKey: "lastController")
}
}
您可以保存控制器类名称,int标识符或所需的somenthing。 然后,在应用程序启动的app委托中,您可以读取此值并使您的自定义逻辑打开正确的控制器。
if NSUserDefaults.standardUserDefaults().stringForKey("lastController") == MyCustomViewController.classForCoder() {
// open MyCustomViewController
}
然后当用户返回时,根据您的应用程序流重定向到正确的UIViewController。