首页 > 解决方案 > SwiftUI 将视图从第一个屏幕更改为 tabview 屏幕

问题描述

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

第一个视图的代码如下: import SwiftUI

结构内容视图:查看{

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()
    }
}

}

屏幕 2 上显示的后退按钮

第一视角

标签: iosswiftswiftuiswiftui-navigationlinkswiftui-navigationview

解决方案


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

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

如果您不仅希望后退按钮消失,还希望整个标题栏消失,则可以使用.navigationBarHidden(true)修饰符。

此外,如果您完全在 iPad 上运行它,您可能希望.navigationViewStyle(StackNavigationViewStyle())将其添加到您的外部NavigationView


推荐阅读