навигация с помощью NavigationStack swiftUI
Я новичок в среде SwiftUI. Я пытаюсь реализовать NavigationStack. Я хочу перемещаться по действию кнопки вместо использования NavigationLink. Причина этого в том, что мне нужно перемещаться после того, как конкретная функция будет выполнена при нажатии кнопки.
структура AView: представление {
@State private var actionss = [Int]()
var body: some View {
NavigationStack(path:$actionss) {
VStack{
Button("test") {
actionss.append(0)
}
}
.navigationDestination(for: Int.self) { data in
BView()
}
}
}
}
Приведенный выше код «AView» отлично работает для навигации по «BView». Единственное, я не могу перемещаться по «CView» из «BView» без использования NavigationLink. Мне нужно выполнить определенную функцию, прежде чем перейти от «BView» к «CView». Пожалуйста, помогите мне в этом.
Заранее спасибо.
1 ответ
Предположим, что работа совершается наBView
вы можете использовать.navigationDestination
также:
struct AView: View {
@State private var actionss = [Int]()
var body: some View {
NavigationStack(path:$actionss) {
VStack{
Button("show BView") {
actionss.append(0)
}
}
.navigationDestination(for: Int.self) { data in
BView()
}
.navigationTitle("AView")
}
}
}
struct BView: View {
@State var show: Bool = false
var body: some View {
VStack {
Button("show CView") {
show = true
}
}
.navigationDestination(isPresented: $show) {
CView()
}
.navigationTitle("BView")
}
}
struct CView: View {
var body: some View {
Text("Hello")
.navigationTitle("CView")
}
}