SwiftUI Модальное Листовое Повторное Открытие После Увольнения - PullRequest
1 голос
/ 11 октября 2019

У меня есть список в навигационном представлении с конечной навигационной кнопкой для добавления элемента списка. Кнопка открывает модальный лист. Когда я отклоняю лист (потянув его вниз), лист автоматически снова поднимается вверх, и я не могу вернуться к первому экрану. Вот мой код.

struct ListView: View {

    @ObservedObject var listVM: ListViewModel

    @State var showNewItemView: Bool = false

    init() {
        self.listVM = ListViewModel()
    }

    var body: some View {
        NavigationView {
            List {
                ForEach(listVM.items, id: \.dateCreated) { item in
                    HStack {
                        Text(item.name)
                        Spacer()
                        Image(systemName: "arrow.right")
                    }
                }
            }
                .navigationBarTitle("List Name")
                .navigationBarItems(trailing: AddNewItemBtn(isOn: $showNewItemView))
        }
    }
}
struct AddNewItemBtn: View {

    @Binding var isOn: Bool

    var body: some View {
        Button(
            action: { self.isOn.toggle() },
            label: { Image(systemName: "plus.app") })
            .sheet(
                isPresented: self.$isOn,
                content: { NewItemView() })
    }
}

Я получаю эту ошибку:

Предупреждение. Попытка представить <_TtGC7SwiftUIP13 $ 7fff2c603b7c22SheetHostingControllerVS_7AnyView_: 0x7fll5 уже 0> (0 0) уже 0> 0))

Я пытался переключать bool в пределах "onDismiss" на самой кнопке, но это тоже не работает. Есть идеи?

1 Ответ

0 голосов
/ 11 октября 2019

Оказывается, вставка кнопки в модификатор navigationBarItems (trailing :) является проблемой. Я просто поместил кнопку в самом списке, а не в навигационной панели, и она прекрасно работает. Должно быть какая-то ошибка.

...