Swiftui 将NavigationLink添加到GroupBox

Swiftui 将NavigationLink添加到GroupBox,swiftui,groupbox,swiftui-navigationlink,Swiftui,Groupbox,Swiftui Navigationlink,我希望能够单击一个GroupBox并将其导航到另一个视图。我尝试实现以下代码,但出现了错误: 无法将“NavigationLink”类型的值转换为预期的参数类型“GroupBoxStyleConfiguration” 类型“()->()”不能符合“StringProtocol”;只有结构/枚举/类类型才能符合协议 我想知道是否有一种方法可以使用GroupBox来更改视图,如果有,如何更改 import SwiftUI struct ContentView: View { // MARK

我希望能够单击一个GroupBox并将其导航到另一个视图。我尝试实现以下代码,但出现了错误:

  • 无法将“NavigationLink”类型的值转换为预期的参数类型“GroupBoxStyleConfiguration”
  • 类型“()->()”不能符合“StringProtocol”;只有结构/枚举/类类型才能符合协议
  • 我想知道是否有一种方法可以使用GroupBox来更改视图,如果有,如何更改

    import SwiftUI
    
    struct ContentView: View {
        // MARK - Properties
        @Environment(\.presentationMode) var presentationMode
        
        var body: some View {
            NavigationView {
              ScrollView(.vertical, showsIndicators: false) {
                VStack(spacing: 10) {
            // MARK: - SECTION 1 : Daily Catch-up
                    GroupBox(
    // The errors start below 
                        NavigationLink({
                            WellnessLabelView(labelText: "Daily Catch-up", labelImage: "chevron.right")
                            ) {
                                Divider().padding(.vertical, 4)
                                HStack(alignment: .center, spacing: 10) {
                                    Text("This app was developed with the idea that expectant families deserve easy access to resources.")
                                        .font(.footnote)}
                            }
    

    您必须制作自己的
    GroupBoxStyle

    struct HealthGroupBoxStyle:GroupBoxStyle{
    颜色:颜色
    var目的地:V
    var日期:日期?
    @ScaledMetric变量大小:CGFloat=1
    func makeBody(配置:配置)->一些视图{
    导航链接(目的地:目的地){
    GroupBox(标签:HStack{
    configuration.label.foregroundColor(颜色)
    垫片()
    如果日期!=零{
    文本(“\(日期!)”)。字体(.footnote)。背景颜色(.secondary)。填充(.training,4)
    }
    图像(systemName:“chevron.right”).foregroundColor(颜色(.systemGray4)).imageScale(.small)
    }) {
    configuration.content.padding(.top)
    }
    }.buttonStyle(PlainButtonStyle())
    }
    }
    
    struct HealthGroupBoxStyle<V: View>: GroupBoxStyle {
    var color: Color
    var destination: V
    var date: Date?
    
    @ScaledMetric var size: CGFloat = 1
    
    func makeBody(configuration: Configuration) -> some View {
        NavigationLink(destination: destination) {
            GroupBox(label: HStack {
                configuration.label.foregroundColor(color)
                Spacer()
                if date != nil {
                    Text("\(date!)").font(.footnote).foregroundColor(.secondary).padding(.trailing, 4)
                }
                Image(systemName: "chevron.right").foregroundColor(Color(.systemGray4)).imageScale(.small)
            }) {
                configuration.content.padding(.top)
            }
        }.buttonStyle(PlainButtonStyle())
    }
    }