#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 работает нормально.