【问题标题】:Remove space NavigationTitle but not the back button删除空间 NavigationTitle 但不删除后退按钮
【发布时间】:2020-12-31 16:34:39
【问题描述】:

我想在不移除后退按钮的情况下移除 NavigationTitle Space。

我已经试过了:

.navigationBarItems(trailing:
  NavigationLink(destination: Preferences(viewModel: viewModel).navigationBarHidden(true)) {
      Image(systemName: "gear")
          .font(.title2)
  }
)

但这也会删除后退按钮。

【问题讨论】:

    标签: ios swift swiftui swiftui-navigationlink swiftui-navigationview


    【解决方案1】:

    标准的Back按钮不能在没有导航栏的情况下显示,因为它是导航项,所以是导航栏的一部分。我假设你只需要透明的导航栏。

    这里是可能解决方案的演示(使用 Xcode 12.1 / iOS 14.1 测试)/图像用于提高可见性 /

    struct ContentView: View {
        
        init() {
            let navBarAppearance = UINavigationBarAppearance()
            navBarAppearance.configureWithTransparentBackground()
            UINavigationBar.appearance().standardAppearance = navBarAppearance
        }
        
        var body: some View {
            
            NavigationView {
                ZStack {
                    Image("large_image")
                    NavigationLink(destination: Image("large_image")) {
                        Text("Go to details ->")
                    }
                }
                .navigationBarItems(trailing: Button(action: {}) {
                    Image(systemName: "gear")
                        .font(.title2)
                }
                )
                .navigationBarTitle("", displayMode: .inline)
            }.accentColor(.red)
        }
    }
    

    【讨论】: