我尝试使用differnt navigationDestination修饰符从NavigationStack转到2个不同的视图,但是我总是被定向到相同的目的地。如何解决这个问题?
下面是我的代码:
import SwiftUI
struct NavTest: View {
var body: some View {
NavigationStack {
NavigationLink("Link1", value: "Link-1")
NavigationLink("Link2", value: "Link-2")
.navigationDestination(for: String.self) {txtValue in Link1()}
.navigationDestination(for: String.self) {txtValue in Link2()}
}
}
}
struct NavTest_Previews: PreviewProvider {
static var previews: some View {
NavTest()
}
}
struct Link1: View {
var body: some View{
Text("You are in Link1 view")
}
}
struct Link2: View {
var body: some View{
Text("You are in Link2 view")
}
}
我知道我的两个导航链接都是字符串,所以也许这就是为什么我只重定向到第一个,但如何修改代码,使其在不同的视图中定向这两个链接?
1条答案
按热度按时间nwlls2ji1#
在
.navigationDestination
中,根据txtValue
的值返回不同的视图。但是,不要使用
String
s,而是尝试使用每个View都有一个case的枚举来进行编译时检查: