为啥单击时我的 NavigationLink 不起作用?

Posted

技术标签:

【中文标题】为啥单击时我的 NavigationLink 不起作用?【英文标题】:How come my NavigationLink won't work when clicked?为什么单击时我的 NavigationLink 不起作用? 【发布时间】:2021-10-28 06:54:29 【问题描述】:

我试图做到这一点,以便当我单击图标时,“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 图片(系统名称:“箭头.逆时针”)

                NavigationView 
                    NavigationLink(destination: scoreView(scoreTracker: $scoreTracker)) 
                        Image(systemName: "list.bullet")
                    
                
            

【问题讨论】:

是的,NavigationLink 必须在 NavigationView 中才能工作。 【参考方案1】:

这和我没有navigationView有关吗?

是的。根据documentation:

用户单击或点按导航链接以在 NavigationView 中显示视图。

它将NavigationView 内工作。如果您没有使用,请考虑使用sheetfullScreenCover。或者,使用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")
                
            
        
    

【讨论】:

好的,谢谢。但是,在我添加 NavigationView 后,我的应用程序正在做一些奇怪的事情。单击按钮时,视图仅更改为屏幕的上半部分。我将编辑我的帖子并显示图片或视频。 @Krish 确保将NavigationView 直接添加到body 中,例如:var body: some View NavigationView ... 。将所有其他视图放入其中。我在回答中添加了一个示例。

以上是关于为啥单击时我的 NavigationLink 不起作用?的主要内容,如果未能解决你的问题,请参考以下文章

为啥单击按钮时我的选项卡没有变化?

为啥单击按钮时我的 reactstrap 模式没有打开?

为啥我使用 go live 时我的代码不起作用?

为啥当我单击按钮时我的数据不去并且没有提交到 MySQL 数据库?

为啥在读取数据框时我的列名中出现 X.?

为啥我的 SwiftUI 应用程序在 `NavigationView` 中的 `navigationBarItems` 内放置 `NavigationLink` 后向后导航时崩溃?