Swift5で新しく追加された機能の一つに「@State」修飾子がある。
以下のように@Stateをつけて変数を宣言するとSwiftUIによる監視モードに入り、宣言された変数の値が変更されると自動的にViewの更新が走るようになっている。
@State var on = false
サンプルコード
実際のサンプルコードを見てみよう。
以下のサンプルでは、@State修飾子をつけてプロパティ「on」を宣言し、SwiftUIのボタン押下によりonの中身を切り替えている。
import SwiftUI
struct ContentView: View {
@State private var on = false
var body: some View {
VStack {
Button(action: {
self.on.toggle()
}) {
Text("Toggle Button, tap here")
.foregroundColor(Color.black)
}
if on {
Text("Good Morning")
.foregroundColor(Color.red)
}
}
}
}
このアプリを実行し、ボタンを押すと監視状態にある「on」の値が更新され、Viewが再読み込みされ画面が更新される。