Using @State to drive Views behavior
As mentioned in the introduction, when a state variable belongs only to a single view, its changes are bound to the components using the @State
property wrapper.
To understand this behavior, we are going to implement a simple To-do List app, where a static set of to-dos are changed to 'done' when we tap on the row.
In the next recipe, Using @Binding to pass a variable to child Views, we'll expand on this recipe, adding the possibility of adding new to-dos.
Getting ready
Let's start the recipe by creating a SwiftUI app called StaticTodoApp
.
How to do it…
To demonstrate the use of the @State
variable, we are going to create an app that holds its state in a list of Todo
structs: each Todo
can be either undone or done, and we change its state by tapping on the related row.
When the user taps on one row in the UI, they change the done state in the related Todo
struct:
- Let's start by adding...