(添加了示例代码)
我正在尝试使用SwiftUI构建可选列表,例如Swift中的原始Tableview。
当用户选择选项卡上的选项卡时,我想显示一个详细视图。但是,我发现要实现它的唯一方法是使用NavigationView和NavigationLink。
有人知道SwiftUI还有其他方法来实现可选列表吗?
下面是我实现的示例:
NavigationView{
List{
ForEach(items, id: \.id){ item in
NavigationLink(destination: WorkItemDetailView(item: item)){
WorkItemListRow(item: item)
}
}
}
}
WorkItemListRow将对象显示在列表的单元格中。 WorkItemDetailView是详细信息视图,将显示对象的详细信息。
答案 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)
}