微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 SwiftUI 的按钮中添加导航按钮链接?

如何解决如何在 SwiftUI 的按钮中添加导航按钮链接?

我想使用按钮导航到详细信息屏幕。这些按钮设计在单独的视图中,称为 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)
        
            }

但是使用此代码导航链接不起作用。

解决方法

您应该将 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()
                           
                           
                   }
               }
           }
        }
    }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。