A matter of state
This is intended as a convenient recap to give you a summary of all the ways SwiftUI allows you to share state.
SwiftUI offers various mechanisms to bind state changes to views, including @State
, @Binding
, @ObservedObject
, @StateObject
, and @EnvironmentObject
(@Environment
is used for system predefined values you want to observe). Let’s go over these mechanisms in more detail:
@State
: This property wrapper stores mutable state for a specific view. SwiftUI manages the storage and ensures that whenever the state changes, the view is re-displayed. It’s used for simple, private state management within a single view.Here’s an example:
struct ContentView: View { @State private var isOn = false var body: some View { Toggle("Toggle", isOn: $isOn) } }
The
@State
variable,isON
, is bidirectionally bound to the value...