每次都恢复状态吗?

dbmrq

我的应用程序具有一个视图控制器,即使用户自己杀死了该应用程序,shouldRestoreApplicationState也没有这样做,也必须还原该视图控制器如果用户杀死了该应用程序,我将回到第一个控制器。

那么,有没有一种方法可以做我想要的事情,让状态每次都能恢复?

如果状态恢复不可能做到这一点,我想也许可以将视图控制器保存到我的持久性存储中,并从我的appDelegate中呈现它,但是我还不能弄清楚。我必须从appDelegate重建整个导航堆栈,包括一个标签栏控制器和直至该视图的多个导航控制器。这是一个好主意吗?我该怎么办?

我尝试了这种变化:

        let bookInfoStoryboard = UIStoryboard(name: "BookInfo", bundle: nil)
        let controller = bookInfoStoryboard
            .instantiateViewControllerWithIdentifier("bookInfoTableViewController")
        self.window?.makeKeyAndVisible()
        self.window?.rootViewController!.presentViewController(controller, animated: true, completion: nil)

但是我不断遇到各种错误。

理想情况下,我想还原每个视图控制器的状态,但是它必须每次都发生。有更好的方法吗?

谢谢,

丹尼尔

克里斯蒂克

持久化视图控制器是不可能的,因为它们携带大量瞬态信息,而很少包含持久性信息。

您可以做的是将表示视图控制器层次结构的配置保存到user defaults,然后从那里重建。例如,假设您拥有一个带有导航之类的文件系统的选项卡视图,则可以坚持使用这样user defaults的字符串:bookmarks.folder1.subfolder2.file18.playing.position=19.28这可能与正在播放的视频文件相对应,并且达到了应用程序崩溃或被OS终止之前的19.28秒的时间。

通过使用上述模式,您可以将控制器还原到非常接近上一个会话结束之前的状态。最好的部分是,用户甚至不必知道您的应用程序已全部启动,就可以获得与上次浏览该应用程序相同的体验。

当然,恢复取决于应用程序的复杂性级别,并且可能不适用于应用程序中的所有流,但是对于这种情况,您至少可以使用户回到退出前更接近应用程序状态的状态。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

每次都增加空间吗?

来自分类Dev

尽管已正确关闭,为什么Windows 10在每次启动时都显示“从休眠状态恢复”?

来自分类Java

每次都计算.getOrDefault()中的.put()吗?

来自分类Dev

不必每次都创建新元素吗?

来自分类Dev

ConcurrentHashMap每次读取都锁定吗?

来自分类Dev

每次删除都需要单独的突变吗?

来自分类Dev

如果我每次通过连接时都通过所有状态,则redux和性能会下降吗?

来自分类Dev

每次都读取数组值作为循环停止条件吗?

来自分类Dev

每次使用时都需要重写html标头吗?

来自分类Java

每次都需要创建一个Java类吗?

来自分类Dev

每次在组件中的onDestroy时都需要取消订阅吗?

来自分类Linux

正确使用linux inotify-每次都重新打开吗?

来自分类Dev

我每次开发时都需要清理项目吗?

来自分类Dev

Vue的ref每次使用时都执行DOM查找吗?

来自分类Dev

每次都需要在 HttpPost 中授权吗?

来自分类Dev

每次都重新创建requirejs依赖项吗?

来自分类Dev

Resources.Load()每次都返回唯一的对象吗?

来自分类Dev

每次创建项目时都需要安装Bower组件吗

来自分类Dev

每次循环都创建一个新变量吗?

来自分类Dev

我必须每次都申请 core.autocrlf 吗?

来自分类Dev

每次调用JavaScript函数时都启动CSS动画吗?

来自分类Dev

io.write每次都打印相同的东西吗?

来自分类Dev

每次发出AWS请求时都需要计算签名吗?

来自分类Dev

vue 中的对象每次创建时都调用导入吗?

来自分类Dev

tensorflow 每次都恢复不同的权重值(来自同一个文件!)

来自分类Dev

BitLocker问题。安装辅助操作系统后,每次启动时都需要恢复密钥

来自分类Dev

状态恢复后,Observer.hasActiveObservers()为false吗?

来自分类Dev

Windows从挂起/休眠状态恢复时运行脚本吗?

来自分类Dev

MySQL 每次启动后都处于活动状态,但我只希望它在需要时启动

Related 相关文章

  1. 1

    每次都增加空间吗?

  2. 2

    尽管已正确关闭,为什么Windows 10在每次启动时都显示“从休眠状态恢复”?

  3. 3

    每次都计算.getOrDefault()中的.put()吗?

  4. 4

    不必每次都创建新元素吗?

  5. 5

    ConcurrentHashMap每次读取都锁定吗?

  6. 6

    每次删除都需要单独的突变吗?

  7. 7

    如果我每次通过连接时都通过所有状态,则redux和性能会下降吗?

  8. 8

    每次都读取数组值作为循环停止条件吗?

  9. 9

    每次使用时都需要重写html标头吗?

  10. 10

    每次都需要创建一个Java类吗?

  11. 11

    每次在组件中的onDestroy时都需要取消订阅吗?

  12. 12

    正确使用linux inotify-每次都重新打开吗?

  13. 13

    我每次开发时都需要清理项目吗?

  14. 14

    Vue的ref每次使用时都执行DOM查找吗?

  15. 15

    每次都需要在 HttpPost 中授权吗?

  16. 16

    每次都重新创建requirejs依赖项吗?

  17. 17

    Resources.Load()每次都返回唯一的对象吗?

  18. 18

    每次创建项目时都需要安装Bower组件吗

  19. 19

    每次循环都创建一个新变量吗?

  20. 20

    我必须每次都申请 core.autocrlf 吗?

  21. 21

    每次调用JavaScript函数时都启动CSS动画吗?

  22. 22

    io.write每次都打印相同的东西吗?

  23. 23

    每次发出AWS请求时都需要计算签名吗?

  24. 24

    vue 中的对象每次创建时都调用导入吗?

  25. 25

    tensorflow 每次都恢复不同的权重值(来自同一个文件!)

  26. 26

    BitLocker问题。安装辅助操作系统后,每次启动时都需要恢复密钥

  27. 27

    状态恢复后,Observer.hasActiveObservers()为false吗?

  28. 28

    Windows从挂起/休眠状态恢复时运行脚本吗?

  29. 29

    MySQL 每次启动后都处于活动状态,但我只希望它在需要时启动

热门标签

归档