为什么单击时我的 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")
                }
            }
        }
    }
}