SwiftUI 的简单编程导航解决方案

航海家

  • 推送任何视图

  • 推送任何视图并设置导航栏标题

  • 弹出返回特定视图(必须设置导航栏标题)

  • 弹出回到根视图

  • 弹出回到上一个视图

  • 删除堆栈中的所有视图

  • 设置自定义导航堆栈

    • let viewD = ViewD()
      let viewE = ViewE()
      Navigator.setStack([viewD.getVC(), viewE.getVC()])
      

示例演示

navigator_demo.mov

用法示例

import SwiftUI
import Navigator

@main
struct nv_testApp: App {
    var body: some Scene {
        WindowGroup {
            NavigationView {
                ViewA()
            }
        }
    }
}


struct ViewA: View {
    var body: some View {
        Text("Navigate To B")
            .onTapGesture {
                Navigator.push(ViewB())
            }
    }
}


struct ViewB: View {
    var body: some View {
        Text("Navigate To C")
            .onTapGesture {
                Navigator.push(ViewC())
            }
    }
}


struct ViewC: View {
    var body: some View {
        Text("Pop Back To A")
            .onTapGesture {
                Navigator.popToRoot()
            }
    }
}

GitHub

查看 Github