Swift UI + CoreData + Toggle - PullRequest
       1

Swift UI + CoreData + Toggle

0 голосов
/ 20 марта 2020

Я использую SwiftUI с CoreData. Каждая ячейка имеет переключатель, который обновляет CoreData isComplete: Bool. Это прекрасно работает, если у меня есть более одного элемента в основных данных, если у меня есть только один элемент, я должен нажать на Toggle 3 раза, прежде чем он исчезнет или представление обновится.

CategoryCompleteToggle(passedCategory: passedCategory, isOn: $isOn)
            } // End HStack
            Text(catName)
        } // End VStack
            .padding(10)
    }
}

struct CategoryCompleteToggle: View {
    var passedCategory: Category
    @Environment(\.managedObjectContext) var moc
    @ObservedObject var catToggle = CategoryToggle()
    @Binding var isOn: Bool

    var body: some View {
        VStack(alignment: .trailing) {
            Toggle(isOn: $isOn) {
                EmptyView()
            }
            .onAppear {
                self.isOn = self.passedCategory.catCompleted
                print("ONLOAD ISON VALUE: \(self.isOn)")
            }
            .onTapGesture {
                self.catToggle.catToggleOn.toggle()
                self.catToggle.catToggleOn = !self.isOn
                print("IsOn Value: \(self.isOn)")
                print("Passed Category Name: \(self.passedCategory.catName ?? "Unknown")")
                print("Current Completed Value: \(self.passedCategory.catCompleted)")
                self.passedCategory.catCompleted = !self.isOn
                do {
                    try self.moc.save()
                } catch {
                    print(error.localizedDescription)
                }

enter image description here

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