본문 바로가기
iOS/Swift배우기

[SwiftUI] 자식에게 State 전달하기

by 붕어사랑 티스토리 2024. 3. 21.
반응형

https://developer.apple.com/documentation/swiftui/managing-user-interface-state

 

Managing user interface state | Apple Developer Documentation

Encapsulate view-specific data within your app’s view hierarchy to make your views reusable.

developer.apple.com

 

 

 

1. Binding 키워드

 

먼저 자식View에다가 @Binding 이라는 프로퍼티 래퍼를 생성한다. 이 프로퍼티 래퍼는 부모의 스테이트를 받아오는 역할을 한다

struct PlayButton: View {
    @Binding var isPlaying: Bool
    
    var body: some View {
        Button(action: {
            self.isPlaying.toggle()
        }) {
            Image(systemName: isPlaying ? "pause.circle" : "play.circle")
        }
    }
}

 

 

 

다음으로 부모의 뷰에서는 $ 기호를 통해 자식에게 Binding 할 스테이트를 전달해준다

 

 

struct Podcaster: View {
    @State private var episode = Episode(title: "Some Episode",
                                         showTitle: "Great Show",
                                         isFavorite: false)
    var body: some View {
        VStack {
            Toggle("Favorite", isOn: $episode.isFavorite) // Bind to the Boolean.
            PlayerView(episode: episode)
        }
    }
}
반응형

'iOS > Swift배우기' 카테고리의 다른 글

Xcode에서 SwiftUI 코드선택 익숙해지기  (0) 2024.03.22
[Swift] PropertyWrapper 사용법  (0) 2024.03.22
SwiftUI에서 {} 동작 원리  (0) 2024.03.20
[Swift] Generic이란  (0) 2024.03.20
[Swift] inout 파라미터  (0) 2024.03.20

댓글