Ios 单击导航链接时不工作-快捷界面

Ios 单击导航链接时不工作-快捷界面,ios,xcode,swiftui,navigationview,swiftui-navigationlink,Ios,Xcode,Swiftui,Navigationview,Swiftui Navigationlink,我有一个名为MainNavigation的视图,在我的主要内容视图上有一个浮动按钮。MainNavigation视图根据所选内容切换到不同的视图。显示时 我有一个包含多个滚动视图的视图。我希望最终的scrollview导航到所选视图,显然没有将视图包装到NavigationView中,什么都不会发生。然而,当我尝试将所有内容包装到NavigationView中时,所有内容都会转换为一种带有后退按钮的边栏 我已经删除了很多格式和无关的代码,以使其更短,但是如果需要更长的代码来理解正在发生的事情,我

我有一个名为
MainNavigation
的视图,在我的主要内容视图上有一个浮动按钮。
MainNavigation
视图根据所选内容切换到不同的视图。显示时

我有一个包含多个滚动视图的视图。我希望最终的scrollview导航到所选视图,显然没有将视图包装到
NavigationView
中,什么都不会发生。然而,当我尝试将所有内容包装到
NavigationView
中时,所有内容都会转换为一种带有后退按钮的边栏

我已经删除了很多格式和无关的代码,以使其更短,但是如果需要更长的代码来理解正在发生的事情,我可以上传:

struct ProductList3: View {
    
    @ObservedObject var selected = SelectedState()
    
    var products: [ProductModel] = productData
    var categories =  Array(Set(productData.flatMap(\.categories)))
            .sortedWithAll()
    var activeApplications : Set<String> {
        Set(products.flatMap { product -> [String] in
            if product.categories.contains(selected.selectedCategory) {
                return product.application
            } else {
                return []
            }
        })
    }

    private var gridItemLayout = [
        GridItem(.flexible()),
        GridItem(.flexible())
    ]
    
    var body: some View {
        NavigationView {
            GeometryReader{ geo in
                HStack {
                    VStack(alignment: .leading){
                        Text("Categories")
                        ScrollView(showsIndicators: false){
                            ForEach(categories, id: \.self) { item in
                                // LISTS CATEGORIES
                            }
                        }
                        .frame(height: geo.size.height * 0.3)
                        
                        Text("Application")
                        ScrollView(showsIndicators: false){
                            ForEach(Array(activeApplications).sortedWithAll(), id: \.self) { item in
                                // LIST APPLICATIONS
                            }
                        }
                    }
                    .frame(width: geo.size.width * 0.3)
                    
                    
                    VStack(alignment: .leading){
                        Text("Products")
                        let matchedItems = products.filter { product in
                            let category = product.categories
                            for item in category {
                                if item == selected.selectedCategory {
                                    let application = product.application
                                    for item in application {
                                        if item == selected.selectedApplication {
                                            return true
                                        }
                                    }
                                }
                            }
                            return false
                        }
                        ScrollView {
                            LazyVGrid(columns: gridItemLayout) {
                                ForEach(matchedItems) { item in
                                    NavigationLink(destination: ProductTabView(product: item, selected: selected)){
                                        applicationListRow(product: item)
                                    }
                                }
                            }
                        }
                    }

                    .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity, alignment: .topLeading)
                }
            }
        }
    }
} 
struct ProductList3:视图{
@ObservedObject var selected=SelectedState()
var products:[ProductModel]=productData
变量类别=数组(集合(productData.flatMap(\.categories)))
.sortedWithAll()
var-activeApplications:Set{
在中设置(products.flatMap{product->[String]
如果product.categories.contains(selected.selectedCategory){
退货申请表
}否则{
返回[]
}
})
}
私有变量gridItemLayout=[
GridItem(.flexible()),
GridItem(.flexible())
]
var body:一些观点{
导航视图{
GeometryReader{geo-in
HStack{
VStack(对齐:。前导){
文本(“类别”)
滚动视图(显示指示器:false){
ForEach(categories,id:\.self){item in
//列出类别
}
}
.框架(高度:geo.size.height*0.3)
文本(“申请”)
滚动视图(显示指示器:false){
ForEach(数组(activeApplications).sortedWithAll(),id:\.self){item in
//列出应用程序
}
}
}
.框架(宽度:geo.size.width*0.3)
VStack(对齐:。前导){
文本(“产品”)
让matchedItems=products.filter{product进入
让category=product.categories
对于类别中的项目{
如果项目==已选定。已选定类别{
让应用程序=product.application
用于申请中的项目{
如果项==已选择。已选择的应用程序{
返回真值
}
}
}
}
返回错误
}
滚动视图{
LazyVGrid(列:gridItemLayout){
ForEach(matchedItems){中的项
NavigationLink(目标:ProductTabView(产品:项目,选定:选定)){
applicationListRow(产品:项)
}
}
}
}
}
.frame(最小宽度:0,最大宽度:。无穷大,最小高度:0,最大高度:。无穷大,对齐方式:。topLeading)
}
}
}
}
} 

这是否回答了您的问题?是的,这已经解决了问题。非常感谢。