그런데 만약 이런 유저 시나리오가 있다면 어떻게 해야할까?
View1 (list) -> View2 (detail)
- list 뷰에서 ⭐️ 즐겨찾기를 누를 수 있다.
- 누른 ⭐️ 즐겨찾기는 detail 뷰에서도 똑같이 표시되어야 한다.
위의 상황은 list뷰의 @State인 즐겨찾기의 bool 값이 detail뷰의 값과 동기화가 되어야 한다.
이럴때 swiftUI 에서는 @Binding을 사용하여, @State값을 참조 할 수 있다.
@Binding을 사용한다면, single source of truth 로 부터 전달받은 값을 읽고 쓸수 있다.
말인즉슨 @State와 달리 single source of truth를 가지는 것이 아니라 참조하게 된다.
$ 를 사용하게 되면, 내부적으로projectedValue
프로퍼티를 사용하게된다.
이때, projectedValue는 타입이 Binding 이기 때문에 값을 전달해 줄 수 있다.