[SwiftUI]画面遷移を自動でするには?

SwiftUI

どうも、ちょげ(@chogetarou)です。

ある特定の時間が経過したら、自動で画面遷移する方法を紹介します。

スポンサーリンク

方法

インターフェース, インターネット, プログラム, ブラウザ, Www

画面遷移を自動でするには、DispatchQueueを使います。

具体的には、DispatchQueueで特定の経過時間後に、画面遷移の処理を呼び出します。

//time経過後に画面遷移
DispatchQueue.main.asyncAfter(deadline: .now() + time) {
    //画面遷移の処理
}

DispatchQueueのasyncAfterメソッドを使えば、特定の時間経過後に自動で画面遷移します。

使用例

struct ContentView: View {
    @State var isShow = false
    var body: some View {
        VStack {
            if isShow {
                Text("Second View")
                    .onAppear{
                        DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
                            self.isShow = false
                        }
                    }
            } else {
                Text("First View")
                    .onAppear(perform: {
                        DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
                            self.isShow = true
                        }
                    })
            }
        }
    }
}

コメント

タイトルとURLをコピーしました