Slide 16
Slide 16 text
ભҠΛ࣮ݱ͢ΔͨΊͷΈ
enum ViewID {
//...
}
protocol RouterObject: ObservableObject {
associatedtype NextView: View
func pushFlag(for view: ViewID) -> Binding
func modalFlag(for view: ViewID) -> Binding
func nextView(after view: ViewID) -> NextView
}
struct RoutingModifier: ViewModifier {
@ObservedObject var router: R
var viewID: ViewID
func body(content: Content) -> some View {
content
.background(//...
.fullScreenCover(//...
}
}
extension View {
func injectRouter(_ router: R, as viewID: ViewID) -> some View {
modifier(RoutingModifier(router: router, viewID: viewID))
}
}
͜ΕͰݺͼग़͠ݩ͕
Θ͔Δ