@State,@Binding
struct ContentView: View {
@State var count = 0
@State var isShowContentView2 = false
var body: some View {
VStack {
HStack {
Button("-") {
count -= 1
}
Text("Counter: \(count)")
Button("+") {
count += 1
}
}
.padding()
Button("ContentView2へ") {
isShowContentView2 = true
}
}
.font(.title)
.sheet(isPresented: $isShowContentView2) {
ContentView2(contentview2count: $count)
<--- count変数をContentView2のcontentview2count変数に持っていきます
}
}
}
struct ContentView2: View {
@Binding var contentview2count: Int
var body: some View {
Button("+10") {
contentview2count += 10
}
.font(.title)
}
}
@State
・原則struct内のの変数の値は変えられないけど、@Stateをつけると変更できるようになります
・@Stateのつく変数の値が変わったら、その変数を使っているビューたちを更新してくれる
@Binding
・変数の値を遷移した画面に持ち越すために必要
BACK