SwiftUIでButtonを押すたびにテキストを変更・入れ替える処理

SwiftUIでButtonを押すたびにテキストを変更・入れ替える処理
SwiftUIでButtonを押すたびにテキストを変更・入れ替える処理

ゴール

次の動画がゴールのイメージです。

Buttonを押すたびにテキストを変更・入れ替える
Buttonを押すたびにテキストを変更・入れ替える

Buttonを押すたびにテキストを変更・入れ替えるプログラム

swift
import SwiftUI

struct ContentView: View {
    @State var message = "Hello"
    @State var buttonState = false
    
    var body: some View {
        VStack {
            Image(systemName: "globe")
                .imageScale(.large)
                .foregroundColor(.accentColor)
            
            Text(message)
            Button("Toggle") {
                buttonState = !buttonState
                message = buttonState ? "Hello world !" : "Change the world !"
            }
        }
        .padding()
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}

プログラムの解説

SwiftUIでのViewは保持するプロパティを変更できないので、 @State var message = ... のように @State を付与したプロパティを渡すことでメモリ管理がSwiftUIフレームワークに委譲され、変更可能になります。

関連記事

最後までご覧いただきありがとうございます!

▼ 記事に関するご質問やお仕事のご相談は以下よりお願いいたします。
お問い合わせフォーム