@State,@Binding

Swift
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