微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何从后退按钮删除标题

如何解决如何从后退按钮删除标题

进入视图后,在人字形图像旁边的“后退”按钮中,导航栏标题紧随其后显示。如何删除它,但保持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")
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。