Ios SwiftUI TabView和NavigationView混合-弹出到根目录';行不通

Ios SwiftUI TabView和NavigationView混合-弹出到根目录';行不通,ios,swift,navigation,combine,Ios,Swift,Navigation,Combine,显然,当我同时使用TabView和NavigationView时,Pop-To-Root不起作用。 这是我实现的两个测试代码。一个同时具有tabView和NavigationView,一个仅具有Navigation视图 同时使用TabView和NavigationView进行编码 仅代码导航视图 只需从代码中删除TabView括号,它的工作方式就像魅力一样 当我尝试在tabview中弹出到根目录时,会显示一个日志 试图在/Library/Caches/com.apple.xbs/Source

显然,当我同时使用TabView和NavigationView时,Pop-To-Root不起作用。 这是我实现的两个测试代码。一个同时具有tabView和NavigationView,一个仅具有Navigation视图

  • 同时使用TabView和NavigationView进行编码
  • 仅代码导航视图
    • 只需从代码中删除
      TabView
      括号,它的工作方式就像魅力一样
    当我尝试在tabview中弹出到根目录时,会显示一个日志
    试图在/Library/Caches/com.apple.xbs/Sources/Monoceros/Monoceros-120/Shared/NavigationBridge\u PhoneTV.swift:341跳转到丢失的目的地

    是否有人找到了在TabView和NavigationView顶部实现pop到根目录的方法?

    尝试一下:

    import SwiftUI
    
    
    struct ContentView: View {
        @State var isActive : Bool = false
    
        var body: some View {
            NavigationView {
                NavigationLink(
                    destination: ContentView2(rootIsActive: self.$isActive),
                    isActive: self.$isActive
                ) {
                    Text("Hello, World!")
                }
                .isDetailLink(false)
                .navigationBarTitle("Root")
            }
        }
    }
    
    struct ContentView2: View {
        @Binding var rootIsActive : Bool
    
        var body: some View {
            NavigationLink(destination: ContentView3(rootIsActive: self.$rootIsActive)) {
                Text("Hello, World #2!")
            }
            .isDetailLink(false)
            .navigationBarTitle("Two")
        }
    }
    
    struct ContentView3: View {
        @Binding var rootIsActive : Bool
    
        var body: some View {
            NavigationLink(destination: ContentView4(shouldPopToRootView: self.$rootIsActive)) {
                Text("Hello, World #3!")
            }
            .isDetailLink(false)
            .navigationBarTitle("Three")
        }
    }
    
    struct ContentView4: View {
        @Binding var shouldPopToRootView : Bool
    
        var body: some View {
            VStack {
                Text("Hello, World #4!")
                Button (action: { self.shouldPopToRootView = false } ){
                    Text("Pop to root")
                }
            }.navigationBarTitle("Four")
        }
    }
    
    struct ContentView_Previews: PreviewProvider {
        static var previews: some View {
            ContentView()
        }
    }
    
    import SwiftUI
    
    
    struct ContentView: View {
        @State var isActive : Bool = false
    
        var body: some View {
            NavigationView {
                NavigationLink(
                    destination: ContentView2(rootIsActive: self.$isActive),
                    isActive: self.$isActive
                ) {
                    Text("Hello, World!")
                }
                .isDetailLink(false)
                .navigationBarTitle("Root")
            }
        }
    }
    
    struct ContentView2: View {
        @Binding var rootIsActive : Bool
    
        var body: some View {
            NavigationLink(destination: ContentView3(rootIsActive: self.$rootIsActive)) {
                Text("Hello, World #2!")
            }
            .isDetailLink(false)
            .navigationBarTitle("Two")
        }
    }
    
    struct ContentView3: View {
        @Binding var rootIsActive : Bool
    
        var body: some View {
            NavigationLink(destination: ContentView4(shouldPopToRootView: self.$rootIsActive)) {
                Text("Hello, World #3!")
            }
            .isDetailLink(false)
            .navigationBarTitle("Three")
        }
    }
    
    struct ContentView4: View {
        @Binding var shouldPopToRootView : Bool
    
        var body: some View {
            VStack {
                Text("Hello, World #4!")
                Button (action: { self.shouldPopToRootView = false } ){
                    Text("Pop to root")
                }
            }.navigationBarTitle("Four")
        }
    }
    
    struct ContentView_Previews: PreviewProvider {
        static var previews: some View {
            ContentView()
        }
    }