В голове возник интересный вопрос: а можно ли заменить navigationLink?
NavigationLink меня не устраивала из-за своей иерархии, что вызывало определенные трудности при вызове одного и того же DetailView и передаче данных из разных View.
Пытаясь ответить на эти вопросы, я наткнулся на эту запись, в котором говорится, что существует 3 способа перехода между представлениями. Вот пытаюсь заменить этот код:
var body: some View {
NavigationView {
List(0..<5) { item in
NavigationLink(
destination: Text("test"),
label: {
Text("\(item)")
})
}
}
Примерно так:
@State var onOff = false
var body: some View {
NavigationView {
List(0..<5) { item in
Button(action: {
self.onOff.toggle()
}, label: {
Text("\(item)")
})
if onOff {
Text("test")
}
}
.navigationBarTitle(Text("Test"), displayMode: .inline)
}
.navigationViewStyle(StackNavigationViewStyle())
}
Однако это не перерисовывает представление, а скорее добавляет его поверх текущего. Как я могу имитировать поведение NavigationLink с помощью кнопки? Я слышал о координаторе, но пока не понял, как им пользоваться.