SwiftUIでのBinding
@Bindingで親ビューと子ビューで変数を同期することができる
親ビューは普段どおり
code: ContentView.swift
@State private var 変数名 = 値
子ビューにBindingを記述
code: ChildView.swift
@Binding var 変数名: 変数の型
子ビューを指定するときに子ビューの変数を初期化する
code: ContentView.swift
ChildView(変数名: $変数名)
初期化するときに.constantを指定する方法は変数では使えない
コンパイルでエラーは出ないけれど.constantは定数になるので変数なのに値が変更できなくなる
これまでずっと.constantでやっててうまくいかなくて悩んでたら、参考に書いてある記事に解決する答えが載ってたんで「ないすぅぅ」って声に出ましたw
子ビューの変数の初期化ができるようになってやっと複数のビューで変数が同期できるようになるのでめっちゃ大事!
子ビューで記述する変数の型にはStringやIntなどがあるが、例えば配列の場合はArray<String>やArray<Int>などと記述すればいい
$変数名 は Binding(get: { 変数名 }, set: { 変数名 = $0 }) と記述することと等しい
$はBindingを意味するということ