0

まず、私のアプリとその流れを説明させてください。アプリが開き、ユーザーがプロファイルを作成します (すべてのデータを type のディクショナリに保存します[String: Any])。ユーザーが [作成] をクリックすると、コンソール画面に送信されます (ユーザーが入力した情報の一部が表示されます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
    }
}

また、データをそのサブクラスに送信して、埋め込まれたすべてのタブで普遍的に利用できるようにすることができると読んだので、 UITabBarControllerasをサブクラス化しました。私はそれがどのように機能するかについて途方に暮れています。TabBarViewControllerviewController

繰り返し質問する可能性があることをお詫び申し上げます...これを調べたり調査したりしましたが、特定のケースに適した解決策が見つかりませんでした。

データを次のように保存するようにコードを更新しました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.

ありがとう!

4

2 に答える 2