728x90
반응형
이전에 @State에 이어 이번엔 @Binding을 알아보려 합니다.
앞서 @State는 해당 뷰안에 속해있는 프로퍼티와 뷰를 엮어주기 위한(바인딩을 위한) 프로퍼티 래퍼라고 했죠?
그렇다면 @Binding은 무엇이냐...
@Binding
@Binding은 @State와 비슷하지만 다릅니다.
바로 현재 뷰에서 하위뷰에 있는 데이터를 가져오기 위해서 사용합니다.
나머지는 똑같아요.
그 값을 가져와서 현재 뷰의 상태를 업데이트하기위함이죠.
물론 @Binding은 하위뷰의 데이터를 가져오기 위함이니 당연히 private을 쓰면 안됩니다.
그리고 이미 있는값을 연동해서 받아오는거라 초기값도 설정하면 안됩니다.
선언과 호출은 아래와 같습니다.
// 선언
@Binding var name: String
// 호출
Text("\($name)")
아래 예시보시죠.
ChildToggleView의 버튼을 누르면 위에 on/off Toggle도 작동하면서 Text값도 바뀝니다.
자식뷰에 @State값을 넘겨주면 그 값이 @Binding 변수에 넣어 말그대로 binding합니다.
그래서 버튼을 누르면 값이 바로 바뀌는걸 볼 수 있죠.
728x90
반응형
'공부 > Apple' 카테고리의 다른 글
[스위프트] 날짜와 문자열 간 변환(Date <-> String) (0) | 2024.05.09 |
---|---|
[스위프트] Some (1) | 2024.02.09 |
[스위프트] SwiftUI - @State (1) | 2024.02.07 |
[스위프트] SwiftUI - AsyncImage (0) | 2024.02.05 |
[스위프트] Deep Link (0) | 2024.02.03 |