如何在关闭并重新打开应用程序时“保存”导航堆栈上的当前视图和所有以前的视图?

时间:2018-06-18 07:20:58

标签: ios swift

我的应用在导航堆栈中有6个视图(视图1-> 6)。

要求是,如果用户在View 4然后关闭应用并重新打开,则应用必须显示View 4,用户可以返回View 3-> 2-> 1.

问题是我可以保存当前视图(通过UserDefault保存View索引)索引但无法保存以前的视图。如果我重新打开应用程序,之前的视图需要续订,怎么做?

请帮助我,对不起我的英语。

2 个答案:

答案 0 :(得分:0)

基本上,最简单的方法是在用户默认值下保存当前路径,例如 app/navigation/vc1/vc2/vc3

在启动应用程序时,您需要阅读此路径,将其与组件分开,然后使用实例化的视图控制器恢复导航控制器。

答案 1 :(得分:-1)

在viewdidload之后尝试将视图1 ...插入当前索引。示例代码:

  -(void)insertView:(int)currentIndex{
    NSMutableArray *newControllers = [NSMutableArray arrayWithArray:self.navigationController.viewControllers];
    for(int i = 0; i < currentIndex; i++){
        UIViewController *vc  = [[UIViewController alloc] init];
        vc.view.backgroundColor = [UIColor redColor];
        [newControllers insertObject:vc atIndex:0];
    }
    [self.navigationController setViewControllers:newControllers];
}