Oi Arthur!
Pelas últimas versões do SwiftUI, ainda não existe um jeito direto e fácil de customizar o botão de voltar sem perder o gesto de swipe. Mas calma, não é o fim do mundo! Dá pra fazer algumas coisas.
Uma solução que muita gente tem usado é criar um botão customizado e, ao mesmo tempo, usar a propriedade navigationBarBackButtonHidden
. Isso mantém o gesto de swipe, enquanto você exibe o botão que você criou.
Algo mais ou menos assim:
struct ContentView: View {
@State private var isNavigationBarHidden: Bool = true
var body: some View {
NavigationView {
VStack {
// Seu conteúdo aqui
}
.navigationBarBackButtonHidden(self.isNavigationBarHidden)
.navigationBarItems(leading:
Button(action: {
// Aqui você coloca a ação do seu botão
}) {
// Aqui você personaliza o visual do seu botão
}
)
.onAppear {
// Essa parte aqui é para esconder a barra de navegação na primeira tela
self.isNavigationBarHidden = true
}
.onDisappear {
// E aqui é para garantir que a barra esteja visível nas outras telas
self.isNavigationBarHidden = false
}
}
}
}
Isso não é perfeito, mas pode ser uma solução temporária enquanto a Apple não nos dá um jeito mais direto de fazer isso.