Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swiftui 导航到子视图时,为什么要退出选项卡视图?_Swiftui_Tabview - Fatal编程技术网

Swiftui 导航到子视图时,为什么要退出选项卡视图?

Swiftui 导航到子视图时,为什么要退出选项卡视图?,swiftui,tabview,Swiftui,Tabview,问题。导航到选项卡视图的子视图时,为什么要退出选项卡视图?我希望我说的很清楚,但是下面的代码已经准备好复制和粘贴了,请注意当我导航到UnrelatedView时,我是如何退出我的选项卡视图的 附加上下文:本例中的根视图ContentView嵌入App.swift文件中的NavigationView中 import SwiftUI struct ContentView: View { var body: some View { TabView {

问题。导航到选项卡视图的子视图时,为什么要退出选项卡视图?我希望我说的很清楚,但是下面的代码已经准备好复制和粘贴了,请注意当我导航到
UnrelatedView
时,我是如何退出我的选项卡视图的

附加上下文:本例中的根视图
ContentView
嵌入App.swift文件中的NavigationView中

  import SwiftUI

struct ContentView: View {
    var body: some View {
        TabView {
            ViewA()
                .tabItem {
                    Text("A")
                }
            
            ViewB()
                .tabItem {
                    Text("B")
                }
            
            ViewC()
                .tabItem {
                    Text("C")
                }
        }
    }
}

struct ContentView_Previews: PreviewProvider {
    static var previews: some View {
        ContentView()
    }
}
 
struct ViewA: View {
    var body: some View {
        NavigationLink(destination: UnrelatedView()) {
        Text("ViewA")
        }
    }
}


struct ViewB: View {
    var body: some View {
        Text("ViewB")
    }
}

struct ViewC: View {
    var body: some View {
        Text("ViewC")
    }
}

struct UnrelatedView: View {
    
    var body: some View {
        NavigationView {
        Text("Unrelated View")
        }
    }
}

您需要在
NavigationView
s中包装导航

struct ViewA: View {
    var body: some View {
        NavigationView {
            NavigationLink(destination: UnrelatedView()) {
                Text("ViewA")
            }
        }
    }
}

问题是,如果我已经在NavigationView中并导航到一个新的NavigationView,我将被双重堆叠。我想我将不得不取消最初的导航视图,只需将它们保留在预定的视图上。是的,您可以从目的地“UnrelatedView”中自由删除导航视图。它将被添加到显示它的视图的导航堆栈中。