SwiftUI модальный не отображается

#ios #swift #swiftui

#iOS #swift #swiftui

Вопрос:

Мой код:

  @State var newMoodForModal: Int? = nil


Text("Tap to Add Note").onTapGesture {
                        print("tapped")
                        newMoodForModal = moodEntries.lastIndex(of: moodEntries.last!) ?? 0
                        print(newMoodForModal)
                    }.sheet(item: $newMoodForModal) { item in
                        MoodEntryModalView(entry: moodEntries[item], saveNote: {
                            do {
                                try context.save()
                            } catch {
                                print(error)
                            }
                        }, deleteMood: {
                            context.delete(moodEntries[item])
                            do {
                                try context.save()
                            } catch {
                                print(error)
                            }
                        })
                    }
  

Когда я нажимаю, я получаю «подключенный» вывод и правильный newMoodForModal номер в консоли, но по какой-то причине модальный не отображается.

У меня есть аналогичный код с MoodEntryModalView modal, использующий другую переменную @State в другом месте (я пытался удалить ее, но это не помогло), который работает нормально, поэтому для меня это выглядит странно.

Комментарии:

1. Почему вы используете Int в качестве item параметра вместо какого Mood -либо объекта? Возможно, было бы лучше использовать Mood (и привести его в соответствие с идентифицируемым). Также убедитесь, что в этом представлении нет другого листа, который переопределял бы ваш лист настроения.

2. Оказалось, что у меня был другой модальный, о котором я забыл, который не позволил этому появиться. Для меня Int работает нормально.