首先,让我解释一下我的应用程序及其流程。应用程序打开,用户创建一个配置文件(将所有数据存储在类型的字典中[String: Any]
)。用户单击创建后,它将它们发送到控制台屏幕(显示用户输入的部分信息,例如通过 a 显示的姓名segue
)。有一个选项卡可以让他们编辑他们的个人资料(姓名、体重、地址等)。当用户编辑他们的信息(更改他们的姓名、体重等)时,它还应该更新控制台页面上显示的信息。
我的主要问题是,如何构建它以便数据对所有选项卡视图都可用。更具体地说,因此数据不是数据的实例或副本。我创建了一个名为的类Person
,其中存储了所有变量(firstName
,lastName
等)。我尝试在类声明之前将 person 类的实例声明为变量UIViewController
,但它不会让我使用该UITextField
.text
属性(因为它们还没有被创建......?)。
这是我的 Person 类...
class Person {
var firstName: String
var lastName: String
var phoneNumber: String
var weight: Int
var gender: String
var streetAddress: String
var cityState: String
init(firstName: String, lastName: String, phoneNumber: String, weight: Int, gender: String, streetAddress: String, cityState: String) {
self.firstName = firstName
self.lastName = lastName
self.phoneNumber = phoneNumber
self.weight = weight
self.gender = gender
self.streetAddress = streetAddress
self.cityState = cityState
}
}
我还对 as 进行了子类化UITabBarController
,TabBarViewController
因为我读过您可以将数据发送到该子类viewController
,并使其对所有嵌入的选项卡普遍可用。我只是不知道这一切是如何运作的。
对于可能提出重复问题,我深表歉意......我已经查看/研究了这个,但我没有找到任何适合我的特定案例的解决方案。
更新代码以将数据另存为CoreData
...
guard let appDelegate =
UIApplication.shared.delegate as? AppDelegate else {
return
}
let managedContext = appDelegate.persistentContainer.viewContext
let userInfo = PInfo(firstName: firstNameField.text, lastName: lastNameField.text, cityState: cityStateField.text, streetAddress: streetAddressField.text, gender: genderInputField.text, userWeight: 200)
save(withPersonInfo: userInfo, withContext: managedContext)
我可以访问各种数据viewControllers
,但它会将它作为单个项目数组返回给我......理想情况下,我希望将它们key:value
成对放置,以便我可以轻松地将它们设置为显示并且可以在Edit Profile
viewController
.
谢谢!