SwiftUI is great. But navigation isn't.
FlowKit is the ideal navigation library for SwiftUI.
| Platform | Minimum Swift Version | Installation |
|---|---|---|
| iOS 13.0+ | 5.5 | Swift Package Manager |
File->Add Packages...And paste the repository URL.- Or add it to the
dependenciesvalue of yourPackage.swift.
dependencies:[.package(url:"https://github.com/Mercen-Lee/FlowKit.git",.branch("main"))]- Push View
flow.push(NextView())
// or
flow.push(NextView(), animated:false)- Pop View
flow.pop()
flow.pop(3) // 3 Views- Pop View to Root
flow.popToRoot()- Replace Views
flow.replace([FirstView(),SecondView()])- Reload View
flow.reload()- Present Sheet
flow.sheet(SheetView())- Present Alert
letalert=Alert(title:"Error",
message:"Not Found",
dismissButton:.default("Ok"))
flow.alert(alert)import SwiftUI
import FlowKit
@mainstructSampleApp:App{varbody:someScene{WindowGroup{FlowPresenter(rootView:ContentView())}}}structContentView:View{@Flowvarflowvarbody:someView{Button{
flow.push(NextView())} label:{Text("Push")}}}structNextView:View{@Flowvarflowvarbody:someView{Button{
flow.pop()} label:{Text("Pop")}}}TCA Example
structFlowDependency:DependencyKey{staticvarliveValue:FlowProvider{FlowProvider(rootView:ContentView())}}extensionDependencyValues{varflow:FlowProvider{get{self[FlowDependency.self]}set{self[FlowDependency.self]= newValue }}}structContent:Reducer{@Dependency(\.flow)varflow...}