我正在制作一个用户需要登录的应用程序,然后将我带到一个 TabView,其中我有 3 个不同的视图(导航视图)。
问题是在我登录后,并使用 NavigationLink 将我发送到 TabView,以向我显示 3 个不同的视图,其中我有 NavigationBarTitles;它还在我的之上创建了另一个(空)NavigationBarTitle。
已经尝试使用以下常用方法: 在此单个视图中,消除 NavigationView 属性,因为它通常可以工作,但在这种情况下不行。
登录视图
import SwiftUI
struct LogInView: View {
var body: some View {
NavigationView {
VStack {
NavigationLink (destination: ContentView()) {
Text("Log In")
.foregroundColor(.white)
.padding(15)
.background(Color.blue)
.cornerRadius(10)
}
}.navigationBarTitle("Log In View")
}
}
}
struct LogInView_Previews: PreviewProvider {
static var previews: some View {
LogInView()
}
}
选项卡
import SwiftUI
struct ContentView: View {
@State private var selection = 0
var body: some View {
TabView(selection: $selection){
DetailView()
.font(.title)
.tabItem {
VStack {
Image("first")
Text("First")
}
}
.tag(0)
}.edgesIgnoringSafeArea(.top)
.navigationBarBackButtonHidden(true)
.navigationBarHidden(true)
}
}
struct ContentView_Previews: PreviewProvider {
static var previews: some View {
ContentView()
}
}
详细视图
import SwiftUI
struct DetailView: View {
var body: some View {
NavigationView {
List {
Text("Hi")
Text("Hi")
Text("Hi")
}.navigationBarTitle("DetailView")
}
}
}
struct DetailView_Previews: PreviewProvider {
static var previews: some View {
DetailView()
}
}