How can I trigger an action when a swiftUI toggle() is toggled?
iOS13+
Here is a more generic approach you can apply to any Binding
for almost all built in View
s like Pickers, Textfields, Toggle..
extension Binding { func didSet(execute: @escaping (Value) -> Void) -> Binding { return Binding( get: { self.wrappedValue }, set: { self.wrappedValue = $0 execute($0) } ) }}
And usage is simply;
@State var isOn: Bool = falseToggle("Title", isOn: $isOn.didSet { (state) in print(state)})
iOS14+
@State private var isOn = falsevar body: some View { Toggle("Title", isOn: $isOn) .onChange(of: isOn) { _isOn in /// use _isOn here.. }}