ボタンを押したらビューが切り替わる方法
import SwiftUI
struct IscheckedView: View {
//完了したかどうかのIsCheckedという変数
@State private var IsChecked = false
var body: some View {
VStack{
Button {
//IsCheckedを切り替える
self.IsChecked.toggle()
} label: {
Text("切り替えるよ")
}
}
}
}
IsCheckedという変数を用意し、IsCheckedを切り替えるToggleを用意します。
そこで切り替わった時には、文章で「チェックされたよ」↔︎「未チェックだよ」という文章にしようと思います。
この時、if文の条件分岐でそれぞれ書き分けることができます。
import SwiftUI
struct IscheckedView: View {
@State private var IsChecked = false
var body: some View {
VStack{
//isCheckedが真の時
if(IsChecked){
Text("チェック済みだよ")
//isCheckedが負の時
}else{
Text("未チェックだよ")
}
Button {
self.IsChecked.toggle()
} label: {
Text("切り替えるよ")
}
}
}
}
また下のように、三項演算子で書くこともできます!
import SwiftUI
struct IscheckedView: View {
@State private var IsChecked = false
var body: some View {
VStack{
IsChecked ? Text("チェック済みだよ") : Text("未チェックだよ")
Text(IsChecked ? "チェック済みだよ":"未チェックだよ")
Button {
self.IsChecked.toggle()
} label: {
Text("切り替えるよ")
}
}
}
}
またモディファイヤーを変えることもできます!
例えば。。。
import SwiftUI
struct IscheckedView: View {
@State private var IsChecked = false
var body: some View {
VStack{
Text("完了かなあ")
//三項演算子でモディファイヤーを変える
.foregroundColor(IsChecked ? .red : .green)
ToggleView(IsChecked: $IsChecked)
}
}
}
struct ToggleView: View {
@Binding var IsChecked: Bool
var body: some View {
VStack{
Button {
self.IsChecked.toggle()
} label: {
Text("切り替えるよ")
}
}
}
}
これで、ボタンを押すことで、文章の色が赤↔︎緑に変わります。
このように、三項演算子やif文を使うことで、見た目や文章を変えることができるのです!