如何在 SwiftUI 的按钮中添加导航按钮链接?
Posted
技术标签:
【中文标题】如何在 SwiftUI 的按钮中添加导航按钮链接?【英文标题】:How to add navigation button link in button in SwiftUI? 【发布时间】:2021-02-05 06:06:55 【问题描述】:我想使用按钮导航到详细信息屏幕。这些按钮被设计在一个单独的视图中,并被称为 Using ForEach 函数。请指导我解决这个问题。
这是我为按钮设计的代码
struct ButtonsDesignView: View
var buttons: MyModel.buttons
var body: some View
Button(action: )
ZStack
HStack
VStack
Text(btn.title)
.foregroundColor(Color(.blue))
.padding()
Text(btn.subtitle)
.foregroundColor(Color(.blue))
.padding()
Spacer()
VStack
Image(systemName: (btn.image))
.resizable()
.scaledToFit()
.foregroundColor(Color(.blue))
.padding()
这是我在 ContentView 中放置的代码,用于调用使用 ForEach 在滚动视图中显示按钮。
ScrollView(.vertical, showsIndicators: false)
ForEach(buttonsData)
item in
NavigationLink(destination: DetailView(buttons: item))
ButtonsDesignView(buttons: item)
.padding(10)
.padding(.horizontal, 30)
但是使用此代码导航链接不起作用。
【问题讨论】:
这是否回答了您的问题***.com/a/65057669/12299030? 对不起,不 :( 我正在尝试找到一种方法来实现 button(action : ) 中的导航功能 【参考方案1】:您应该将 navigationLink 添加到 ButtonDesignView。 我认为这应该可行;
NavigationLink(destination: DetailView(buttons: buttons))
Button(action: )
ZStack
HStack
VStack
Text(btn.title)
.foregroundColor(Color(.blue))
.padding()
Text(btn.subtitle)
.foregroundColor(Color(.blue))
.padding()
Spacer()
VStack
Image(systemName: (btn.image))
.resizable()
.scaledToFit()
.foregroundColor(Color(.blue))
.padding()
【讨论】:
我将 NavigationLink 放在 ZStack 之上,并且它工作。非常感谢你:)以上是关于如何在 SwiftUI 的按钮中添加导航按钮链接?的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI:如何更改用户按住导航链接或按钮等内容时发生的颜色变化?