Как перемещаться между представлениями в SwiftUI?

#swiftui

#swiftui

Вопрос:

Я пытаюсь открыть представление при нажатии кнопки, а не при нажатии на навигационную ссылку, но все, что я могу найти в Интернете, — это как это сделать с помощью навигационной ссылки. Итак, как вы это делаете без?

Код:

 @State var goToMainView = false
 
 NavigationLink(destination: ContentView(),isActive: $goToMainView,label:{}).hidden()
Button(action: {
      goToMainView = true
      context.delete(goal)
      do {
            try context.save()
      } catch {
            print(error)
      }
}, label: {
      Text("Delete Goal")
})
 

Ответ №1:

Вы можете перемещаться с помощью кнопки, используя NavigationLink

 @State var goToSecondView = false 

NavigationView {
 VStack {
  NavigationLink(destination: SecondView(),isActive: $goToSecondView,
    label: { EmptyView() })
  }.hidden()

  Button(action : { goToSecondView = true } , label : { Text("Click On Me") })
 }
}
 

И для получения более подробной информации я написал эту статью , она может помочь вам
в навигации с помощью SwiftUI

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

1. Спасибо, это очень помогает, однако, когда я пытаюсь сделать это, чтобы вернуться к просмотру, он открывает предыдущий вид в совершенно новом подробном виде. Итак, как мне это исправить и вернуться к просмотру?

2. @EthanPervere можете ли вы предоставить некоторый код того, что именно вы сделали?

3. Я добавил код, в котором я удаляю что-то в CoreData, а затем удаляю страницу.

4. В чем причина перехода к другому View после того, как это delete будет сделано? , В любом случае, если вам нужно обновить страницу после возврата к ней, используйте onAppear{}