基于HackingWithSwift的iDine教程,制作了一个订单类型的应用程序。唯一的不同是,我希望在OrderView中也显示NavigationLink。我没有链接到具有导航链接的行视图,而是将导航链接编码到OrderView.swift- NavigationView-> List-> Section-> ForEach中。当订单中有2个或更多相同项目时,它将打开NavLink很多次,然后返回到“订单”页面。您触摸的任何行都会发生这种情况。我收到此错误:UITableView被告知在不处于视图层次结构的情况下布局其可见的单元格和其他内容(表视图或其父视图之一尚未添加到窗口中)
我一般都不熟悉SwiftUI和Swift和iOS编程。我尝试添加行视图,但是无法弄清楚具体情况下的情况。我试图在Row中创建一个计数器,以消除添加多个实例的需要,但也无法做到这一点,无法弄清楚如何添加将编码到ForEach参数中并且特定于每行。
struct OrderView: View {
@EnvironmentObject var order: Order
var body: some View {
NavigationView {
List {
Section {
ForEach(order.entry) { item in
NavigationLink(destination: OrderDetail(entry: item)){
HStack {
Text(item.level)
Text("-")
Text(item.name)
Text(",")
Image(item.imageName).resizable()
.frame(width: 32, height: 23)
Spacer()
Text("\(item.spellCount)")
}
}
}.onDelete(perform: deleteItems)
}
}.navigationBarTitle("Prepared Spells")
.listStyle(GroupedListStyle())
.navigationBarItems(trailing: EditButton())
}
}
func deleteItems(at offsets: IndexSet) {
order.entry.remove(atOffsets: offsets)
}
}