ios - 缓存 Storyboard之间的 View Controller

标签 ios swift xcode tableview

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

最佳答案

当你dismiss/pop一个UIViewController时,你想缓存UIViewController持有的数据,而不是UIViewController本身 您将它从 UIWindow 的层次结构中删除,当您再次呈现/推送 它时,它的生命周期会重置并再次触发,从而导致您重新获取数据在 UIViewController 中表示,因此,缓存数据并在您呈现/推送 UIViewController 时对其进行检查是您要查找的内容.

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

因此,当您获取数据时,您将其存储在 Realm 中,然后当您呈现/推送 UIViewController 时,您会对这些数据进行检查数据,如果它们存在,否则再次获取它们,您还可以制定一个计划,在一段时间后清除缓存的数据。

关于ios - 缓存 Storyboard之间的 View Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57130128/

相关文章:

xcode - 如何让 NSTextField 的宽度根据其内容进行调整?

ios - 列出带有电话号码的联系人

ios - Swift 3 中的 CGRect 以正确的原点旋转

ios - 尝试将值附加到字典

ios - XIB 和 View Controller 之间的协议(protocol)委托(delegate)

ios - 避免我的 iOS 应用程序中的文件易于替换

iOS自动@synthesize而不创建ivar

ios - 准备使用 Sender 在 Swift 中进行 Segue

ios - 向 TableViewController 添加边距

xcode - 如何以向后兼容的方式使用 Objective-C __nonnull?