【问题标题】:SwiftUI NavigationStack pass vars through enum?SwiftUI NavigationStack 通过枚举传递变量?
【发布时间】:2023-01-24 23:23:36
【问题描述】:

我可以通过 SwiftUI 中的 Route 枚举为我的 NavigationStack 传递变量吗?在此示例中,我试图通过 Route 枚举将 input: String 传递到我的视图 @State var output: String 中。

@available(iOS 16.0, *)
enum Route: Hashable {
    case first(input: String)
    @ViewBuilder
    func view(_ path: Binding<NavigationPath>) -> some View{
        switch self {
        //ERROR HERE: cannot find input var to pass to view
        case .first: AView1(output: input)
        }
    }
}

@available(iOS 16.0, *)
struct AView1: View {
    @State var output: String
    @State var path: NavigationPath = .init()
    var body: some View {
        NavigationStack(path: $path){
            VStack{
                Text(output)
                NavigationLink(value: Route.first(input: "Hello"), label: {Text("Click")})
            }
            .navigationDestination(for: Route.self){ route in
                route.view($path)
            }
        }
    }
}

【问题讨论】:

    标签: swiftui


    【解决方案1】:

    尝试改变

     case .first: AView1(output: input)
    

     case .first(let input): AView1(output: input)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-29
      • 2016-09-13
      • 2019-01-28
      相关资源
      最近更新 更多