How do I use UserDefaults with SwiftUI?

前端 未结 5 1859
无人共我
无人共我 2020-11-30 00:18
struct ContentView: View {
@State var settingsConfiguration: Settings
    struct Settings {
        var passwordLength: Dou         


        
5条回答
  •  孤独总比滥情好
    2020-11-30 00:54

    The code below adapts Mohammad Azam's excellent solution in this video:

    import SwiftUI
    
    struct ContentView: View {
        @ObservedObject var userDefaultsManager = UserDefaultsManager()
    
        var body: some View {
            VStack {
                Toggle(isOn: self.$userDefaultsManager.firstToggle) {
                    Text("First Toggle")
                }
    
                Toggle(isOn: self.$userDefaultsManager.secondToggle) {
                    Text("Second Toggle")
                }
            }
        }
    }
    
    class UserDefaultsManager: ObservableObject {
        @Published var firstToggle: Bool = UserDefaults.standard.bool(forKey: "firstToggle") {
            didSet { UserDefaults.standard.set(self.firstToggle, forKey: "firstToggle") }
        }
    
        @Published var secondToggle: Bool = UserDefaults.standard.bool(forKey: "secondToggle") {
            didSet { UserDefaults.standard.set(self.secondToggle, forKey: "secondToggle") }
        }
    }
    

提交回复
热议问题