@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 の参照している元のプロパティも変更される.

この記事が気に入ったらサポートをしてみませんか?