SwiftUIのToggleの変更を検知する


SwiftUIのToggleの変更を検知し、print 文を実行します。

SwiftUI Toggle Action

参考: How can I trigger an action when a swiftUI toggle() is toggled?

ContentView.swift

import SwiftUI

class ContentViewViewModel: ObservableObject {
    @Published var toggleValue: Bool = true {
        didSet {
            print("value did change")
        }
    }
}

struct ContentView: View {
    @ObservedObject(initialValue: ContentViewViewModel()) var viewModel: ContentViewViewModel
    var body: some View {
        Toggle(isOn: $viewModel.toggleValue) {
            HStack {
                Text("value = " + String(viewModel.toggleValue))
            }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}