首页 > 解决方案 > 缓存故事板在它们之间切换的视图控制器

问题描述

我有一个带有标签栏视图控制器的情节提要,它加载了一个导航控制器,该控制器加载了多个视图控制器。当您从一个视图控制器转到下一个视图控制器并返回到第一个视图控制器时,数据会重新加载。我想缓存视图控制器以避免重新加载数据。我不想以编程方式加载视图控制器。有没有办法使用情节提要代码启用缓存?

标签: iosswiftxcodetableview

解决方案


您想缓存UIViewController所持有的数据,而不是UIViewController它自己,当您关闭/弹出时,UIViewController您将其从层次结构中删除,UIWindow当您再次呈现/推送它时,它的生命周期重置并再次触发,导致您重新获取UIViewController因此,缓存数据并在您呈现/推送时检查数据就是UIViewController您要查找的内容。

对此,我建议您查看一些您熟悉的本地数据库,例如Realm

因此,当您获取存储它的数据时,Realm当您呈现/推送时,UIViewController您只需检查这些数据是否存在,否则再次获取它们,您还可以执行计划以在一段时间后清除缓存的数据.


推荐阅读