본문 바로가기
공부/스위프트

[스위프트] SwiftUI - @Binding

by 초코팅촉 2024. 2. 8.
728x90

이전에 @State에 이어 이번엔 @Binding을 알아보려 합니다.

앞서 @State는 해당 뷰안에 속해있는 프로퍼티와 뷰를 엮어주기 위한(바인딩을 위한) 프로퍼티 래퍼라고 했죠?

그렇다면 @Binding은 무엇이냐...

 

@Binding

@Binding은 @State와 비슷하지만 다릅니다.

바로 현재 뷰에서 하위뷰에 있는 데이터를 가져오기 위해서 사용합니다.

나머지는 똑같아요.

그 값을 가져와서 현재 뷰의 상태를 업데이트하기위함이죠.

물론 @Binding은 하위뷰의 데이터를 가져오기 위함이니 당연히 private을 쓰면 안됩니다.

그리고 이미 있는값을 연동해서 받아오는거라 초기값도 설정하면 안됩니다.

 

선언과 호출은 아래와 같습니다.

// 선언
@Binding var name: String

// 호출
Text("\($name)")

 

아래 예시보시죠.

@Binding 예시

ChildToggleView의 버튼을 누르면 위에 on/off Toggle도 작동하면서 Text값도 바뀝니다.

자식뷰에 @State값을 넘겨주면 그 값이 @Binding 변수에 넣어 말그대로 binding합니다.

그래서 버튼을 누르면 값이 바로 바뀌는걸 볼 수 있죠.

 

'공부 > 스위프트' 카테고리의 다른 글

[스위프트] 날짜와 문자열 간 변환(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