swiftuiでチェックリストを作成したく、
アプリを再起動しても、再起動前にチェックマークをつけた部分にはチェックマークを残しておきたいです。
各Buttonを押したらtextで✔︎をつけて、✔︎の付いている状態をUserDefaultsで保存したいのですが、再起動のたびに✔︎が消えてしまいます。
どのようにすれば解決するか、ご教授いただきたいです。よろしくよろしくお願いいたします。
swift
1 2import SwiftUI 3 4struct ContentView: View { 5 @State private var selections = Set<String>() 6 @State var Save:Bool = false 7 8 var body: some View { 9 List(kyakulist, id: \.self) { row in 10 Button { 11 if selections.contains(row) { 12 selections.remove(row) 13 } else { 14 selections.insert(row) 15 } 16 UserDefaults.standard.set(selections.contains(row), forKey: "row") 17 } label: { 18 HStack { 19 Text("\(row)") 20 if selections.contains(row) { 21 Spacer() 22 Text("✔︎") 23 } 24 } 25 } 26 } 27 .onAppear{ 28 self.Save = true 29 guard let defaults = UserDefaults.standard.value(forKey: "row") as? Bool else { return } 30 self.Save = defaults 31 } 32 } 33} 34 35```swift 36 37```swift 38 39let kyakulist:[String] = [ 40 "みかん", 41 "りんご", 42 "マンゴー", 43 "いちご", 44 "バナナ", 45 "ぶどう", 46 "もも", 47 "ドリアン", 48 "なし", 49 "スイカ", 50 "キウイ", 51 "パイナップル", 52 "グレープフルーツ", 53 "メロン", 54 "さくらんぼ", 55] 56 57```swift
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/02/05 13:50