从 SwiftUI 中的后退按钮中删除文本

Cod*_*der 9 ios13 swiftui ios-navigationview

简而言之,我想这样,但要使用 SwiftUI。

在此处输入图片说明

应该被移除)

到目前为止,我还没有找到NavigationBarButton直接访问 的方法,并且设法找到了以下似乎是我迄今为止可以找到的修改按钮的唯一方法:

struct MyList: View {
    var body: some View {
            Text("MyList")
            .navigationBarTitle(Text(verbatim: "MyList"), displayMode: .inline)
            .navigationBarItems(leading: Text("<"))
    }
}
Run Code Online (Sandbox Code Playgroud)

但是,我丢失了默认的返回图像并得到了一个丑陋的 <。

在此处输入图片说明

kon*_*iki 7

您需要设置后退按钮将弹出的视图的标题:

struct ContentView: View {    
    var body: some View {
        NavigationView {
            VStack {
                NavigationLink(destination: DetailView()) {
                    Text("push view")
                }
            }.navigationBarTitle("", displayMode: .inline)
        }
    }
}

struct DetailView: View {    
    var body: some View {
        Text("Detail View")
    }
}
Run Code Online (Sandbox Code Playgroud)

或者,要根据演示状态有条件地设置或取消设置源视图的标题,您可以使用下面的代码。

请注意 isActive 参数有一个错误,但这很可能很快就会得到解决。以下是提到的 SwiftUI 错误的参考:NavigationDestinationLink 已弃用

struct ContentView: View {
    @State private var active: Bool = false

    var body: some View {
        NavigationView {
            VStack {
                NavigationLink(destination: DetailView(), isActive: $active) {
                    Text("push view")
                }
            }.navigationBarTitle(!active ? "View Title" : "", displayMode: .inline)
        }
    }
}

struct DetailView: View {
    var body: some View {
        Text("Detail View")
    }
}
Run Code Online (Sandbox Code Playgroud)

  • 虽然这解决了眼前的问题,但它又产生了一个新问题。现在“源”视图控制器在导航栏中没有标题。 (4认同)