SwiftUI/Xcode中创建NavigationLink导航链接报错问题咨询
代码问题排查
NavigationLink的destination参数语法错误:你当前写的destination:codeName.(model: .codeName)完全不符合Swift语法规则,要跳转至SelectionView(codeName: "Y")直接将该视图实例作为destination参数值传入即可- 非法嵌套
List:你在外层List内部又写了一个List,不仅布局会出现异常,也不符合多级跳转的逻辑 - 变量未定义:代码中使用的
models数据源、.codeName枚举/值均没有显式定义,会直接触发编译报错 - 内层
SelectionView未绑定跳转逻辑:如果需要点击SelectionView跳转到对应的DetailView,需要将SelectionView包裹在NavigationLink中,指定目标为DetailView即可
修正后代码(兼容iOS 13及以上版本,保留NavigationView)
import SwiftUI // 先定义你的数据模型,这里做示例实现 struct ItemModel: Identifiable { let id = UUID() let codeName: String } // 示例models数据源 let models: [ItemModel] = [ ItemModel(codeName: "A"), ItemModel(codeName: "B"), ItemModel(codeName: "C") ] // 你提到的SelectionView示例实现 struct SelectionView: View { let codeName: String var body: some View { List { NavigationLink { DetailView(codeName: codeName) } label: { Text("查看\(codeName)的详情") } } .navigationTitle(codeName) } } // 你提到的DetailView示例实现 struct DetailView: View { let codeName: String var body: some View { Text("这是\(codeName)的详情页") .navigationTitle("详情") } } struct ContentView: View { var body: some View { NavigationView { List { // 固定跳转到codeName为Y的SelectionView NavigationLink { SelectionView(codeName: "Y") } label: { Text("Y") } // 遍历数据源生成列表项,点击跳转到对应SelectionView ForEach(models) { model in NavigationLink { SelectionView(codeName: model.codeName) } label: { Text(model.codeName) } } } .navigationTitle("首页") } } } #if DEBUG struct ContentView_Previews: PreviewProvider { static var previews: some View { ContentView() .previewLayout(.device) .preferredColorScheme(.dark) .previewDevice("iPhone 13 Pro Max") } } #endif
iOS 16+ 推荐写法(替换已弃用的NavigationView为NavigationStack)
只需要将ContentView的导航部分替换即可,路由管理更便捷:
struct ContentView: View { var body: some View { NavigationStack { List { NavigationLink("Y", value: "Y") ForEach(models) { model in NavigationLink(model.codeName, value: model.codeName) } } .navigationTitle("首页") .navigationDestination(for: String.self) { codeName in SelectionView(codeName: codeName) } } } }
内容的提问来源于stack exchange,提问作者Wen Love Howard
相关产品推荐
相关产品推荐

