- @Binding을 이용해서 메인뷰와 섭뷰를 연결하기
- 이렇게 하면 메인뷰의 변수를 섭뷰에서 사용할 수 있게된다
import SwiftUI
struct BindingBootcamp: View {
@State var backgroundColor: Color = Color.green
@State var title: String = "Title"
var body: some View {
ZStack {
backgroundColor
.ignoresSafeArea(.all)
VStack {
Text(title)
.foregroundStyle(.white)
ButtonView(backgroundColor: $backgroundColor, title: $title)
}
}
}
}
struct ButtonView: View {
@Binding var backgroundColor: Color
@State var buttonColor: Color = Color.blue
@Binding var title: String
var body: some View {
Button(action: {
backgroundColor = Color.orange
buttonColor = Color.pink
title = "New Title!!!!!".uppercased()
}, label: {
Text("Button")
.foregroundStyle(.white)
.padding()
.padding(.horizontal)
.background(buttonColor)
.clipShape(.buttonBorder)
})
}
}
#Preview {
BindingBootcamp()
}