10

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

在此处输入图像描述

应该被删除)

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

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

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

在此处输入图像描述

4

1 回答 1

5

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

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

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

请注意 isActive 参数有一个错误,但很可能很快就会解决。这是对提到的SwiftUI 错误的参考:NavigationDestinationLink deprecated

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")
    }
}
于 2019-08-06T15:33:56.820 回答