有没有一种方法可以在同一列表行中包含多个NavigationLink

时间:2020-05-18 12:11:07

标签: swift swiftui

我想在同一NavigationLink行中有多个List,以复制CollectionView的行为。

这是我的代码:

var body: some View {
        NavigationView {
            ZStack {
                Color(.black)
                    .edgesIgnoringSafeArea(.all)
                VStack(alignment: .center, spacing: 10) {
                    SearchBar(text: $searchViewModel.searchText)
                    List {
                        ForEach(0..<searchViewModel.items.count, id: \.self) { index in
                            HStack(alignment: .center, spacing: 10) {
                                ForEach(self.searchViewModel.items[index], id: \.id) { item in
                                    self.cellFor(item)
                                }
                                Spacer()
                            }
                        }
                    }
                }
            }
            .navigationBarTitle("")
            .navigationBarHidden(true)
        }
    }

func movieCellFor(_ item: SearchItemViewModel) -> some View {
        return NavigationLink(destination: MovieDetails(movieId: item.sourceId)) {
            cellUiFor(item)
        }
    }

如果我点击我的一个单元格,它似乎只是“消耗”该行中的每个NavigationLink。我认为这是由于默认的List行为。有没有办法防止它并连续放置多个NavigationLink? 我知道我可以将内容放入ScrollViewVStack中,但是我想保留List组件的重用系统。

编辑:

    func movieCellFor(_ item: SearchItemViewModel) -> some View {
         return Button(action: {}) {
            NavigationLink(destination: MovieDetails(movieId: item.sourceId)) { cellUiFor(item) }
         }

0 个答案:

没有答案