Exercise 2: Passing a Binding to a Child TextField — Possible Solution ===================================================================================== struct ParentView: View { @State private var username = "" var body: some View { VStack { UsernameField(username: $username) Text("Current value: \(username)") } } } struct UsernameField: View { @Binding var username: String var body: some View { TextField("Enter username", text: $username) } } HOW IT WORKS: ParentView owns the real, persistent state - a @State private var username - and passes $username, the projected Binding value (not the plain String itself), down to UsernameField's own username parameter, which is declared as @Binding var username: String to receive exactly that kind of two-way connection rather than a plain copy. Inside UsernameField, the TextField is itself bound to $username - using the $ prefix a second time, since @Binding properties also expose their own projected value, allowing the binding to be passed along yet further if needed. Typing into the TextField writes directly through this chain of bindings back to ParentView's own real, externally-stored username state (per Exercise 1's own @State mechanism) - there's no copy anywhere in this chain breaking the connection, so ParentView's own Text showing "Current value: \(username)" updates live as the user types. ANSWER: ParentView holds @State private var username and passes $username to UsernameField's @Binding var username, which in turn binds a real TextField to $username. Because a Binding is a genuine two-way connection rather than a copy, typing into the TextField updates ParentView's own username state directly, confirmed by the parent's own Text view reflecting the change immediately. WHY THIS WORKS AS AN ANSWER ------------------------------ This correctly implements a two-level State-to-Binding chain and explains why the connection stays live end to end, rather than merely asserting it works.