Почему NavigationLink иногда не работает, даже если мы изменяем переменную isActive?IOS

Программируем под IOS
Ответить
Anonymous
 Почему NavigationLink иногда не работает, даже если мы изменяем переменную isActive?

Сообщение Anonymous »

Вы когда-нибудь сталкивались с тем, что NavigationLink иногда не работает, но когда вы прокручиваете список вниз или делаете что-то еще, навигация срабатывает?

Код: Выделить всё

 NavigationView {
List {
//.... some views
}
NavigationLink(destination: destinationView(),
isActive: $isShowDestination) {
EmptyView()
}
}
Ответ:[/b]
После нескольких попыток я обнаружил, что когда я нажимаю, чтобы нажать (изменяя переменную isShowDestination/isActive), навигация не переходит к Представление «Назначение», но когда я прокручиваю список вниз, он автоматически срабатывает и переходит в представление «Назначение».
Затем я понял, что, поскольку список имеет много представлений, при прокрутке вниз появляется onAppear происходит какое-то событие, запускающее работу NavigationLink.
Затем я добавил VStack и поместил NavigationLink внутри списка. , и все начало работать хорошо.
пример:

Код: Выделить всё

 NavigationView {
VStack {
List {
//.... some views
}
NavigationLink(destination: destinationView(),
isActive: $isShowDestination) {
EmptyView()
}
}
}
Надеюсь, это поможет хотя бы одному из вас.🙋

Подробнее здесь: https://stackoverflow.com/questions/785 ... active-var
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «IOS»