gpt4 book ai didi

ios - 如何保存 UIPageViewController 的 subview Controller 的值以在应用程序的其他地方使用?

转载 作者:行者123 更新时间:2023-11-28 15:09:09 24 4
gpt4 key购买 nike

我有一个包含多个 View Controller 的 UIPageViewController,每个 View Controller 都有用户要回答的问题。一旦回答了这些问题,我想将这些值保存在本地某处,以便稍后创建一个填充了这些值的 PDF。做这个的最好方式是什么?我会使用 NSUserDefaults 吗?

最佳答案

这取决于您希望数据如何持久保存。如果您希望数据在用户生命周期内持续存在,即使应用程序已从设备中删除,您显然也需要将其存储在远离客户端的位置,例如数据库(即 Realm、CoreData)。如果您希望数据在应用程序本身的生命周期内持续存在,您将继续使用这些数据来塑造用户体验,您可以使用 UserDefaults 但这似乎不是您正在尝试的去做。如果您只是希望数据在该应用程序实例的生命周期内持续存在,请将其存储在常规属性中。

我怀疑,无论出于何种原因,第三种选择都是您的选择。如果是这样,我建议创建一个模型对象作为父 View Controller 的实例属性(所有页面 View Controller 都可以引用)...

class SurveyAnswers {

var userName: String?
var userAge: Int?
var favoriteSauce: PizzaSauce?
var livesWithCats: Bool?

}

...并简单地使用协议(protocol)/委托(delegate)模式将数据从子级传递到父级,这将更新该对象中的属性(只要它们正在更新该对象的相同实例)。然后,当您准备好准备 PDF 文件时,只需向父级询问该对象,其属性已由 subview Controller 设置。

如果您同意,您可以使用共享的 AppDelegate 作为存储和检索此数据的方式。我只是提醒不要养成这种习惯,但根据您的整个应用程序,这可能是一个完全可以接受的选择。

一般经验法则:在目标对象中设置属性以向前传递数据并使用委托(delegate)向后传递数据。

关于ios - 如何保存 UIPageViewController 的 subview Controller 的值以在应用程序的其他地方使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47948941/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com