각 VStack의 onTabGesture에 의한 버튼 "Mark as favoriate" 클릭하면 ❤ 가 표시/비표시 된다.
만약 이 변수를 서브뷰인 RestaurantInfo 에 선언을 한다면 렌더링시에 초기화가 되니 의도에 맞지 않다.
그래서 이 변수를 메인뷰(RestaurantListView) 안에 선언을 하고 서브뷰(RestaurantInfo)에 파라미터로 전달을 하지만 서브뷰에서 값의 변경이 있으면 메인뷰의 변수에도 반영이 되도록 하기 위해 서브뷰에서는 @Bind 로 선언하여야 한다.
https://sarunw.com/posts/binding-initialization/ 참조
메인뷰에서 레스토랑 수 만큼 bool 형으로 초기화하는 @State 변수를 선언
해당 레스토랑의 Favorite 상태 값을 서브뷰에 파라미터로 전달
서브뷰(RestaurantInfo)에서는 값의 변경이 메인뷰에도 반영이 되도록 @Binding 으로 정의
서브뷰의 VStack 안에서 레스토랑명과 ❤ 를 HStack 으로 배열
서브뷰의 VStack actionSheet 의 버튼에서는 ❤ 표시/비표시 의 @Binding 변수의 true/false 변경
'Mobile > Swift' 카테고리의 다른 글
JSON 데이터 보여주기 (0) | 2025.03.04 |
---|---|
View 에 관해 (0) | 2025.02.24 |
List UI @State 를 이용한 버튼 액션 보이기(onTabGesture, actionSheet, alert) (0) | 2025.02.24 |
List UI 앱 리팩토링(refactoring) (0) | 2025.02.24 |
List UI 앱 생성 (0) | 2025.02.23 |