当我进入一个视图后,在后退按钮中,V形图像旁边,导航栏标题就显示在它的后面。我如何删除它,但保持navigationBarTittle
?我试过navigationBarBackButtonHidden
,但没用。
更新
我补充道:
@State private var active: Bool = false
和
.navigationBarTitle(!active ? "Buscar" : "")
当我单击该按钮时,另一个视图看起来就像我想要的,但随后一切都变白了。
这是代码:
@EnvironmentObject var session: SessionStore
@Environment(.colorScheme) var colorScheme
init() {
UINavigationBar.appearance().backIndicatorImage = UIImage(systemName: "chevron.left")
UINavigationBar.appearance().backIndicatorTransitionMaskImage = UIImage(systemName: "chevron.left")
}
@State private var active: Bool = false
var body: some View {
NavigationView {
VStack(spacing: 0) {
ScrollView(.vertical, showsIndicators: false) {
VStack(spacing: 18) {
ScrollView(.horizontal, showsIndicators: false) {
HStack(spacing: 20) {
Text("teste")
.frame(height: 180)
.frame(width: 330)
.background(Color.blue)
.cornerRadius(15)
Text("teste")
.frame(height: 180)
.frame(width: 330)
.background(Color.green)
.cornerRadius(15)
Text("teste")
.frame(height: 180)
.frame(width: 330)
.background(Color.pink)
.cornerRadius(15)
}.padding(.horizontal, 12)
}
ForEach(specialtyList, id: .type) { specialty in
NavigationLink(destination: SearchBar(item: specialty), isActive: self.$active) {
VStack(spacing: 18) {
HStack {
Text(specialty.type).foregroundColor(.white)
specialty.image
.renderingMode(.original)
.resizable()
.frame(width: 35, height: 35)
}.frame(minWidth: 0, idealWidth: 350, maxWidth: .infinity)
.frame(height: 100)
}
}.padding(.horizontal)
.background(specialty.color).cornerRadius(45)
}.padding(.horizontal)
}
.padding(.top)
.padding(.bottom)
}
}.navigationBarTitle(!active ? "Buscar" : "")
}.accentColor(colorScheme == .dark ? Color.white : Color.black)
}
如果我在您想要的导航栏中的子视图中理解正确:返回按钮(只有箭头,而不是文本(和一些导航标题。
当您转到子视图时,ContentView
中当前包含的内容将删除其标题:
.navigationBarTitle(!active ? "Buscar" : "")
因此子视图中的后退按钮将没有文本。
这意味着你可能也不需要这个代码:
init() {
UINavigationBar.appearance().backIndicatorImage = UIImage(systemName: "chevron.left")
UINavigationBar.appearance().backIndicatorTransitionMaskImage = UIImage(systemName: "chevron.left")
}
此外,您需要在子视图中指定导航栏标题:
.navigationBarTitle("detail title")
您的代码不可复制,但这里有一个简单的演示:
struct ContentView: View {
@State private var active: Bool = false
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: DetailView(), isActive: self.$active) {
Text("go to...")
}
}
.navigationBarTitle(!active ? "Buscar" : "")
}
}
}
struct DetailView: View {
var body: some View {
Text("detail view")
.navigationBarTitle("detail title")
}
}