SwiftUIで一度定義したTextの内容を後で変更し、内容を表示するサンプルコードです。
UILabelでは作成したインストタンスで個別に内容を変更できましたが、SwiftUIでは勝手が変わっていて手こずったのでサンプルコードをSwiftUI学習のため作成してみました。
Text((buttonStr == String・・・の部分を、戻り値がStringになっている関数等を呼び出すように変更すれば幅広く応用できそうです。
実行環境
Xcode Version 16.2
Apple Swift version 6.0
import SwiftUI
struct buttonSampleView: View {
@State var buttonStr:String = String()
var body: some View {
VStack {
// 変数の内容を表示するText 押された1-3のボタンの番号を表示する
Text((buttonStr == String()) ? "何も押されていません":"\(buttonStr)が押されました")
.font(.title)
HStack {
Button {
print("ボタン1が押されました")
buttonStr = "1"
} label: {
Text("ボタン1")
}
Button {
print("ボタン2が押されました")
buttonStr = "2"
} label: {
Text("ボタン2")
}
Button {
print("ボタン3が押されました")
buttonStr = "3"
} label: {
Text("ボタン3")
}
}
.font(.title2)
}
.padding()
}
}
#Preview {
buttonSampleView()
}



