Как исправить избыточную NavigationLink, UITableViewAlertForLayoutOutsideViewHierarchy - PullRequest
0 голосов
/ 27 октября 2019

Основано на учебном пособии по iDine от HackingWithSwift, созданного приложения типа заказаРазница лишь в том, что я хочу отобразить NavigationLink и в OrderView. Вместо того, чтобы ссылаться на представление строк, которое имеет навигационную ссылку, я кодировал навигационную ссылку в OrderView.swift- NavigationView-> List-> Section-> ForEach. Когда в заказе 2 или более одинаковых предмета, он открывает NavLink, который много раз возвращается к странице заказа. Это происходит в любой строке, к которой вы прикасаетесь. Я получил эту ошибку: UITableView было приказано расположить видимые ячейки и другое содержимое, не находясь в иерархии представлений (табличное представление или одно из его суперпредставлений не было добавлено в окно)

Я новичок в SwiftUIи программирование Swift и iOS в целом. Я пытался добавить Row View, но не смог понять, как в конкретном контексте. Я пытался создать счетчик в строке, чтобы исключить необходимость добавления нескольких экземпляров, но также не смог этого сделать, не мог понять, как добавить счетчик чисел или переменную, которая будет кодировать в аргумент 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)
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...