Ios SwiftUI将视图从第一个屏幕更改为tabview屏幕

Ios SwiftUI将视图从第一个屏幕更改为tabview屏幕,ios,swift,swiftui,swiftui-navigationlink,swiftui-navigationview,Ios,Swift,Swiftui,Swiftui Navigationlink,Swiftui Navigationview,我想在用户点击“开始”后更改视图,但由于在我的第一个视图中有导航视图,它在我的下一个屏幕上显示后退按钮,这是我不想要的。请看下面的图片 第一个视图的代码如下所示: 导入快捷键 结构ContentView:View{ var body: some View { NavigationView { VStack { Spacer() Text("LifePath") .font(

我想在用户点击“开始”后更改视图,但由于在我的第一个视图中有导航视图,它在我的下一个屏幕上显示后退按钮,这是我不想要的。请看下面的图片

第一个视图的代码如下所示: 导入快捷键

结构ContentView:View{

var body: some View {
    NavigationView {
        VStack {
            Spacer()
            Text("LifePath")
                .font(.system(size: 48, weight: .semibold))
                .padding(.bottom)
            Spacer()
            
            
            
            NavigationLink(destination: ViewChanger()) {
                Text("Get Started")
                    .font(.headline)
                    .navigationBarBackButtonHidden(true)
            }
        }
        .padding()
    }
}
}


更改
navigationBackButtonHidden
修改器的位置,以便它实际修改您要查看的视图(而不是
NavigationLink
标签):

struct ContentView:View{
var body:一些观点{
导航视图{
VStack{
垫片()
文本(“生命路径”)
.font(.system(大小:48,重量:半黑体))
.padding(.bottom)
垫片()
导航链接(目标:ViewChanger()

.navigationBarBackButtonHidden(true)/如果使用NavigationLink(在NavigationView中),将推送视图。如果要替换视图,可以使用
If
语句来执行此操作

例如,可以这样实现:

struct ContentView: View {
    @State var showSecondView: Bool = false

    var body: some View {
        if !showSecondView {
            NavigationView {
                VStack {
                    Spacer()
                    Text("LifePath")
                        .font(.system(size: 48, weight: .semibold))
                        .padding(.bottom)
                    Spacer()
            
                    Button(action: { showSecondView = true }) {
                        Text("Get Started")
                            .font(.headline)
                    }
            }
            .padding()
        } else {
            TabView {
                // ...
            }
        }
    }
}
struct ContentView: View {
    @State var showSecondView: Bool = false

    var body: some View {
        if !showSecondView {
            NavigationView {
                VStack {
                    Spacer()
                    Text("LifePath")
                        .font(.system(size: 48, weight: .semibold))
                        .padding(.bottom)
                    Spacer()
            
                    Button(action: { showSecondView = true }) {
                        Text("Get Started")
                            .font(.headline)
                    }
            }
            .padding()
        } else {
            TabView {
                // ...
            }
        }
    }
}