ios - 如何在 SwiftUI 中添加自定义导航栏后退按钮

标签 ios swift swiftui

我一直在尝试查找如何在 SwiftUI 中添加自定义导航栏后退按钮,但我得到了这种奇怪的行为,即默认行为仍然出现在显示自定义行为之前。有谁知道添加它的正确方法吗?

这是我尝试过的。

var body: some View {
        NavigationView {
            ZStack {
               Color.background.edgesIgnoringSafeArea(.all)
               NavigationLink(destination: UserDetailsView()) {
                        Text("Continue")
                            .foregroundColor(.background)
                            .font(.title)
                            .fontWeight(.semibold)
                    }
                    .frame(width: 250, height: 60, alignment: .center)
                    .background(Color.white)
                    .cornerRadius(40)
                    .padding(.top, 50)
            }
            .navigationBarTitle("", displayMode: .automatic)
            .navigationBarHidden(true)
        }
      }

这里,当我使用下面的代码隐藏后退按钮时,它根本没有隐藏。

.navigationBarBackButtonHidden(true)

在详细信息屏幕

  var body: some View {
        NavigationView {
            VStack {
                ZStack {
                    Rectangle()
                        .foregroundColor(.clear)
                        .background(gradient)
                        .edgesIgnoringSafeArea(.all)

                    Text("Hello")
                }
            }
            .navigationBarItems(leading: BackButton(presentationMode: presentationMode))
        }
    }

自定义后退按钮如下所示

struct BackButton: View {
    var presentationMode : Binding<PresentationMode>

    var body: some View {
        Button(action: {
            self.presentationMode.wrappedValue.dismiss()
        }) {
            HStack {
                Image(Icon.leftArrow)
                    .aspectRatio(contentMode: .fit)
                    .foregroundColor(.black)
            }
        }
    }
}

这是它的样子 enter image description here

最佳答案

感谢您的提示。它对我有用......但是在添加

之后
.navigationBarItems(leading:  ... 

滑动返回功能不再起作用。 我猜这是 SwiftUI 中的一个错误?

有人找到解决方法吗?

关于ios - 如何在 SwiftUI 中添加自定义导航栏后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59691957/

相关文章:

iphone - iOS - IBAction - 用户正在输入的文本字段

ios - 使用 MKZoomScale 调整 MKAnnotationView 的大小 - Swift 2.0

ios - SWRevealViewController FrontViewController 未加载,卡在黑色,其他 View 正常

ios - UITableViewCell 改变高度

ios - 如何在 SwiftUI View 上使用 Combine

ios - 自动布局:UILabel 无法正确调整长文本的大小

c++ - swift 编译器无法找到 C++ 库

swift - 从所有 VC 中删除观察者 - swift

ios - 如何为在 iPad 上运行的 iPhone SwiftUI 应用程序锁定纵向方向?

swiftui - 当包含文本字段的工作表出现时,如何使文本字段成为焦点