0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

[SwiftUI]条件分岐でViewを変える方法

Posted at

ボタンを押したらビューが切り替わる方法

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文を使うことで、見た目や文章を変えることができるのです!

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?