SwiftUI-没有导航视图,有没有办法建立动态列表视图?

时间:2019-10-30 06:32:11

标签: ios swift listview swiftui

(添加了示例代码)

我正在尝试使用SwiftUI构建可选列表,例如Swift中的原始Tableview。

当用户选择选项卡上的选项卡时,我想显示一个详细视图。但是,我发现要实现它的唯一方法是使用NavigationView和NavigationLink。

有人知道SwiftUI还有其他方法来实现可选列表吗?

下面是我实现的示例:

NavigationView{

    List{

        ForEach(items, id: \.id){ item in 

            NavigationLink(destination: WorkItemDetailView(item: item)){

                WorkItemListRow(item: item)
            }
        }
    }
}

WorkItemListRow将对象显示在列表的单元格中。 WorkItemDetailView是详细信息视图,将显示对象的详细信息。

2 个答案:

答案 0 :(得分:3)

您还可以使用模式演示:

@State var selectedItem: Item? = nil

var body: some View {
    List {
        ForEach(items) { item in
            WorkItemListRow(item: item)
                .onTapGesture {
                    self.selectedItem = item
                }
        }
    }   .sheet(item: $selectedItem,
               onDismiss: { self.selectedItem = nil }) { item in
                    WorkItemDetailView(item: item)
               }
    }
}

答案 1 :(得分:-2)

我认为最好提供一个源代码,无论如何,根据您的问题,您已经建立了一个表格视图,但是只是想转到另一个包含表格视图中所选项目详细信息的页面。

您可以使用此:

  func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
            let vc = ViewController()
            self.present(vc, animated: true, completion: nil)

}