Кажется, у меня проблема, когда NavigationLink
переформатируется в Form
. Мой NavigationLink
активируется через isActive
при нажатии кнопки, которая переключает showNext
.
Проблема в том, что NavigationLink
, кажется, активируется сам по себе, даже когда кнопка не существует, нажав пустую строку, которую Form
создает для NavigationLink
, которая должна просто быть EmptyView
. Кажется, что Form
создает строки даже для EmptyViews
.
Поэтому я подумал, что могут быть некоторые возможные решения, но я не уверен, что они возможны:
(1) Каким-то образом скрыть строку, созданную для NavigationLink
/ EmptyView
полностью без отключения навигации.
(2) Переопределить форматирование Form
для NavigationLink
, чтобы оно не активировалось при нажатии.
РЕДАКТИРОВАТЬ: Похоже, вариант 2 возможен с .disabled(true)
, но пустая секция все еще видна, что нежелательно поверх этого, кажется немного хакерским.
struct FormView : View {
@State var showNext: Bool = false
var body: some View {
NavigationView {
Form {
Section {
VStack {
Text("Hello")
NavigationLink(destination: Text("Detail View"), isActive: $showNext)
{ EmptyView() }
}
}
}
}
}
}