如何在 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:如何更改用户按住导航链接或按钮等内容时发生的颜色变化?

如何在 SwiftUI 中使用按钮导航回一个视图

导航链接在 SwiftUI 中只能使用一次

包含按钮的 SwiftUI 导航链接

创建没有后退按钮 SwiftUI 的 NavigationLink

如何从导航栏按钮导航到新视图在 SwiftUI 中单击