为什么单击时我的 NavigationLink 不起作用?
How come my NavigationLink won't work when clicked?
我试图做到这一点,以便在我单击该图标时打开“scoreView()”。当我点击它时,现在没有任何效果。这是代码:
HStack {
Image(systemName: "arrow.counterclockwise")
NavigationLink(destination: scoreView(scoreTracker: $scoreTracker)) {
Spacer()
Image(systemName: "list.bullet")
}
}
和我没有navigationView有关系吗?我是新手,正在尝试,所以我不是很清楚。
编辑:
我添加了一个 NavigationView,但 NavigationLink 覆盖了一半的屏幕,单击时,视图仅在该方块中发生变化。
Before clicking the NavigationLink
After clicking the NavigationLink
HStack {
图片(系统名称:“arrow.counterclockwise”)
NavigationView {
NavigationLink(destination: scoreView(scoreTracker: $scoreTracker)) {
Image(systemName: "list.bullet")
}
}
}
Does it have something to do with the fact that I don't have a navigationView?
是的。根据 documentation:
Users click or tap a navigation link to present a view inside a NavigationView.
它将仅在NavigationView
内工作。如果您不使用,请考虑 sheet
or fullScreenCover
instead. Or, make your own overlay with a ZStack
.
示例 NavigationView
用法:
struct ContentView: View {
var body: some View {
NavigationView { /// directly inside `var body: some View`
VStack { /// if you have multiple views, make sure to put them in a `VStack` or similar
Text("Some text")
/// `ScoreView` should be capitalized
NavigationLink(destination: ScoreView(scoreTracker: $scoreTracker)) {
Image(systemName: "list.bullet")
}
}
}
}
}
我试图做到这一点,以便在我单击该图标时打开“scoreView()”。当我点击它时,现在没有任何效果。这是代码:
HStack {
Image(systemName: "arrow.counterclockwise")
NavigationLink(destination: scoreView(scoreTracker: $scoreTracker)) {
Spacer()
Image(systemName: "list.bullet")
}
}
和我没有navigationView有关系吗?我是新手,正在尝试,所以我不是很清楚。
编辑: 我添加了一个 NavigationView,但 NavigationLink 覆盖了一半的屏幕,单击时,视图仅在该方块中发生变化。 Before clicking the NavigationLink After clicking the NavigationLink
HStack { 图片(系统名称:“arrow.counterclockwise”)
NavigationView {
NavigationLink(destination: scoreView(scoreTracker: $scoreTracker)) {
Image(systemName: "list.bullet")
}
}
}
Does it have something to do with the fact that I don't have a navigationView?
是的。根据 documentation:
Users click or tap a navigation link to present a view inside a NavigationView.
它将仅在NavigationView
内工作。如果您不使用,请考虑 sheet
or fullScreenCover
instead. Or, make your own overlay with a ZStack
.
示例 NavigationView
用法:
struct ContentView: View {
var body: some View {
NavigationView { /// directly inside `var body: some View`
VStack { /// if you have multiple views, make sure to put them in a `VStack` or similar
Text("Some text")
/// `ScoreView` should be capitalized
NavigationLink(destination: ScoreView(scoreTracker: $scoreTracker)) {
Image(systemName: "list.bullet")
}
}
}
}
}