所以我在try 弹出当前屏幕时遇到了关于SwiftUI中的NavigationView和NavigationLinks的问题,在这种情况下不起作用.
我有3个屏幕A->B-&>C
每个屏幕都有一个弹出按钮.
来自B->A的POP正常,但当你从A->B-&>C导航时,来自C-&>B的POP不起作用.
你知道会有什么问题吗?我会附上下面的代码和一段视频. 该应用程序应该支持iOS 14.
struct ScreenA: View {
@State private var showB = false
var body: some View {
NavigationView {
VStack {
Button("Go to B") {
showB = true
}
NavigationLink(destination: ScreenB(didTapGoBack: {
showB = false
}), isActive: $showB) {
EmptyView()
}
}
}
}
}
struct ScreenB: View {
var didTapGoBack: () -> Void
@State var showC = false
var body: some View {
VStack {
Button("Go to C") {
showC = true
}
Button("Back to Screen A") {
didTapGoBack()
}
NavigationLink(destination: ScreenC(didTapGoBack: {
showC = false
}), isActive: $showC) {
EmptyView()
}
}
}
}
struct ScreenC: View {
var didTapGoBack: () -> Void
var body: some View {
VStack {
Text("Screen C")
Button("Back to Screen B") {
didTapGoBack()
}
}
}
}
@main
struct TestNavApp: App {
var body: some Scene {
WindowGroup {
ScreenA()
}
}
}