現在、恒久データとSegueの準備を一緒に使用しようとしています。これは私がこれまで持っているものである:(VC1)セグを準備した恒久データ
override func viewDidAppear(_ animated: Bool) {
let itemsObject = UserDefaults.standard.object(forKey: "items")
if let tempItems = itemsObject as? [String] {
items = tempItems
}
(VC2):
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "toSecondViewController" {
let itemsObject = UserDefaults.standard.object(forKey: "items")
var items:[String]
if let tempItems = itemsObject as? [String] {
items = tempItems
items.append(textField.text!)
print(items)
} else {
items = [textField.text!]
}
UserDefaults.standard.set(items, forKey: "items")
}
}
私はVC2の配列に項目を追加しようとしています。それから私はVC1に永久にそれを保存しながら配列を転送したいです。私はXcode 8.0とSwift 3.0を使用しています。
これはデータを永久に保存しますか? –
viewDidLoadのUserdefaultsに書き込む必要はありません。また、データを永続化する必要があるときはいつでも、どこにでも書くことができます。ただし、メモリ内コピーを子ビューコントローラに渡すことはできます。他の場所から変更することができないと思わないかぎり、ディスクから読み取る必要はありません。その場合、NotificationCenterを使用して、データを更新するすべてのView Controllerに対してメッセージを送信することを検討する必要があります。 –