重新启动应用程序时如何恢复导航控制器路径?

Posted

技术标签:

【中文标题】重新启动应用程序时如何恢复导航控制器路径?【英文标题】:How to restore a navigationcontroller path when relaunching the app? 【发布时间】:2010-03-01 10:14:05 【问题描述】:

我正在构建一个基于导航控制器的应用程序。

我希望用户能够在重新启动应用程序时看到他退出应用程序时看到的最后一个屏幕。

就像在邮件应用程序中一样,当您在撰写邮件时按下“home”,然后当您返回邮件时,您会直接到达您正在撰写的邮件。

我首先想知道什么是最好的解决方案(我不认为我可以通过NSuserdefaults 得到那个)。 然后,我想知道这个解决方案是否适用于我的应用程序,考虑到在我的 rootviewcontroller 中我会在本地下载我解析的数据,然后显示在多个导航控制器视图中。

【问题讨论】:

【参考方案1】:

我刚刚解决了这个问题...不确定这是最优雅的方法...

但是,我基本上会跟踪每次推送并将自己弹出到堆栈中,但我存储的是对象而不是视图。每次从我的堆栈中推送或弹出某些东西时,我都会保存它(不需要时间)。

当应用程序启动时,它会查找堆栈文件,然后进行几次推送(将项目从加载的堆栈中弹出),但不会为每个项目设置动画。我的层次结构是(最深的)4 个项目,对于用户来说,它看起来就像它只是在对象上打开。

堆栈是从根控制器的 viewDidLoad 方法中的文件加载的。

【讨论】:

以上是关于重新启动应用程序时如何恢复导航控制器路径?的主要内容,如果未能解决你的问题,请参考以下文章

如何保存应用程序状态并再次恢复它

当 hidesBottomBarWhenPushed = YES 状态恢复时,导航控制器不隐藏标签栏

离子视图未缓存,控制器重新加载

如何在情节提要的标签栏上启动导航控制器的第三个视图控制器

*不*使用导航控制器在视图中保存和恢复图像?

导航控制器调整大小仅适用于纵向?