Я пытался посмотреть, как добавить настраиваемую кнопку назад навигационной панели в 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)
}
}
}
}
Вот как это выглядит 