SwiftUI NavigationView の Push/Pop をコードで実行する
SwiftUI の NavigationView の Push(進む)と Pop(戻る)をユーザのアクションではなく、コードで(pragmatically)実行する調査をしたサンプル。
サンプルはボタンアクションで Push/Pop するが、この調査結果により、コードで Push/Pop 実行できることが可能と分かった。
Push する方
NavigationLink の isActive
を false -> true にして、次の画面へ行く
struct ContentView: View { @State private var navigationLinkIsActive = false var body: some View { NavigationView() { VStack { Button(action: { self.navigationLinkIsActive = true }, label: { Text("Push") }) NavigationLink(destination: SubView(), isActive: $navigationLinkIsActive, label: { EmptyView() }) } } .navigationBarBackButtonHidden(true) } }
Pop する方
presentationMode
を使用する
import SwiftUI struct SubView: View { @Environment(\.presentationMode) var presentationMode var body: some View { VStack { Button(action: { self.presentationMode.wrappedValue.dismiss() }, label: { Text("Pop") }) } .navigationBarBackButtonHidden(true) } }