为啥单击时我的 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
内工作。如果您没有使用,请考虑使用sheet
或fullScreenCover
。或者,使用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 不起作用?的主要内容,如果未能解决你的问题,请参考以下文章
为啥当我单击按钮时我的数据不去并且没有提交到 MySQL 数据库?
为啥我的 SwiftUI 应用程序在 `NavigationView` 中的 `navigationBarItems` 内放置 `NavigationLink` 后向后导航时崩溃?