[SwiftUI] @Binding

yxxjxn·2023년 7월 11일

데이터를 저장하고 있는 프로퍼티와 데이터를 보여주고 변경시키는 view 사이의 커넥션을 만들어준다.

struct PlayButton: View {
    @Binding var isPlaying: Bool


    var body: some View {
        Button(isPlaying ? "Pause" : "Play") {
            isPlaying.toggle()
        }
    }
}

@Binding 을 통해서 property 변화 공유

struct PlayerView: View {
    var episode: Episode
    @State private var isPlaying: Bool = false


    var body: some View {
        VStack {
            Text(episode.title)
                .foregroundStyle(isPlaying ? .primary : .secondary)
            PlayButton(isPlaying: $isPlaying) // Pass a binding.
        }
    }
}

실제 사용하는 쪽에서는 @State 이용한다.
@Binding했기 때문에 $ << 달러 기호 사용해 매개변수로 넘겨준다.

profile
macos

0개의 댓글