代码之家  ›  专栏  ›  技术社区  ›  TheGreatCornholio

NavigationStack-NavigationLink不工作

  •  0
  • TheGreatCornholio  · 技术社区  · 2 年前

    在主视图中,以下是NaviationStack:

    .navigationDestination(for: String.self){ selection in
        
        if(selection == "login"){
            Login()
        }else if(selection == "register"){
            CreateAccount()
        }
    }
    

    在子视图中,我有以下内容:

    NavigationLink(value: "login"){
        Image(systemName: "person.circle.fill")
            .resizable()
            .aspectRatio(contentMode: .fit)
            .frame(height: profImgSize)
            .foregroundColor(Color(UIColor(named: "IconColor")!))
    }
    

    当我点击它时,我会得到:

    注意:链接在任何周围的NavigationStack中搜索目的地,然后在NavigationSplitView的同一列中搜索。
    NavigationLink提供了一个String类型的值,但从链接的位置看不到匹配的navigationDestination声明。无法激活链接。

    当我创建一个最小的例子时,它就可以工作了,当我把所有的代码都发布在这里时,它就会太多了。这里可能有什么问题?

    1 回复  |  直到 2 年前
        1
  •  0
  •   jnpdx    2 年前

    你的 navigationDestination 在的外部 NavigationStack .错误消息告诉您:

    链接在任何周围的NavigationStack中搜索目的地

    当看 the documentation ,你可以看到 导航目的地 应该进入 NavigationStack :

    NavigationStack {
        List(parks) { park in
            NavigationLink(park.name, value: park)
        }
        .navigationDestination(for: Park.self) { park in
            ParkDetails(park: park)
        }
    }