SwiftUIにおけるステート表現の構文

SwiftUI の ViewState は、@State キーワードで表すことができる。

  1. シングル状態属性の定義と初期化:
@State private var isShowingSheet = false
  1. ビューでステートプロパティを使用する。
struct ContentView: View {
@State private var isShowingSheet = false
var body: some View {
VStack {
Button("Show Sheet") {
self.isShowingSheet = true
}
.sheet(isPresented: $isShowingSheet) {
SheetView()
}
}
}
}
  1. View で状態プロパティの値を使用する:
struct SheetView: View {
@Environment(\.presentationMode) var presentationMode
var body: some View {
VStack {
Text("Sheet View")
Button("Dismiss") {
self.presentationMode.wrappedValue.dismiss()
}
}
}
}

上の例では、isShowingSheet はシート表示の有無を制御するための状態プロパティです。ボタンがクリックされるとこのプロパティの値が true に設定され、シートが表示されます。シート表示状態は isPresented パラメータによって制御され、このパラメータは状態プロパティの値としてバインドされています。

SheetViewにおいて、presentationModeとは、シートが非表示にされているかどうかを制御するための環境変数です。ボタンがクリックされたとき、self.presentationMode.wrappedValue.dismiss()を呼び出すとシートを非表示にできます。

@Stateと$記号により、SwiftUIはビューの状態を扱い、更新するための簡潔で直観的な方法を実現します。

bannerAds