0

我的应用程序中有四个视图控制器。现在让我们假设用户当前在第二个 viewController 上并且他终止了应用程序。

现在如何保存此状态,以便当用户重新打开应用程序时,他应该看到第二个 viewContoller,并且应该能够导航回第一个 viewContoller。

我想到的解决方案是简单地将当前屏幕的变量保存在 userDefaults 中,然后将该 viewController 设为 rootViewController。但我知道这不是正确的解决方案,我也会失去导航。请指导我谢谢。

4

1 回答 1

0

如果您还没有,请创建一个名为 BaseViewController 的类,该类应该从您的所有 UIViewController 中扩展:

class BaseViewController: UIViewController {

    override func viewDidAppear(animated: Bool) {
        super.viewDidAppear(animated)

        // always remember last controller shown
        NSUserDefaults.standardUserDefaults.setObject(classForCoder(), forKey: "lastController")
    }
}

您可以保存控制器类名称、int 标识符或您想要的东西。然后,在应用程序启动时的应用程序委托中,您可以读取此值并使您的自定义逻辑打开正确的控制器。

if NSUserDefaults.standardUserDefaults().stringForKey("lastController") == MyCustomViewController.classForCoder() {
    // open MyCustomViewController
}

然后当用户返回时,根据您的应用程序流程重定向到正确的 UIViewController。

于 2016-07-26T06:54:20.407 回答