@Binding Swift
View 間で共通のプロパティを参照させたいときに @Binding を使う.
@Binding により宣言されるプロパティは,他の View のプロパティを参照するため,宣言と同時に初期化を行わない.インスタンス化される際に,引数として参照を渡すことで,初期化される.
struct ContentView: View {
@State var order = ""
var body: some View {
VStack {
Text(order)
NavigationLink(destination: InputTextView(text: $order)) {
Text("Input")
}
}
}
}
struct InputTextView: View {
@Binding var text: String
var body: some VIew {
TextField("Please input here", text: $text)
.padding()
.textFieldStyle(RoundedBorderTextFieldStyle())
}
}
@Binding によって宣言されたプロパティに変更を加えると,他の View の参照している元のプロパティも変更される.
この記事が気に入ったらサポートをしてみませんか?