Переход на другой View по NavigationLink SwiftUI
Возможно мой вопрос покажется глупым или простым, ведь я только учусь.
При переходе на новый вью через NavigationLink я хочу оставлять только иконку назад и вставлять новое название на вью
Вот пример как я хочу:
А вот что выходит:
Первый вью:
struct NewLoanView: View {
var body: some View {
NavigationView {
VStack {
NavigationLink(destination: CalculatorView()) {
Text("Оформить займ")
}
.foregroundColor(.white)
.background(Color.orange)
}
.navigationBarTitle("Мой займ")
}
}
}
Вот вью куда переходим:
struct CalculatorView: View {
var body: some View {
NavigationView {
.navigationTitle("Оформить займ")
}
}
}
Ответы (1 шт):
Автор решения: VAndrJ
→ Ссылка
К сожалению, некоторые вещи совсем элегантно изменить не получится.
Шаг первый:
// Кастомная кнопка назад
struct CustomBackButton: View {
let action: () -> Void
var body: some View {
Button(action: action) {
Image(systemName: "arrow.backward")
.foregroundColor(.green)
}
}
}
Шаг второй:
// Скрыть кнопку назад и использовать свою:
struct CalculatorView: View {
var body: some View {
Text("Hello")
.navigationBarBackButtonHidden(true)
.navigationBarItems(leading: CustomBackButton {
})
}
}
Шаг третий:
// Событие "назад"
struct CalculatorView: View {
@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode> // <---
var body: some View {
Text("Hello")
.navigationBarBackButtonHidden(true)
.navigationBarItems(leading: CustomBackButton {
presentationMode.wrappedValue.dismiss() // <---
})
}
}
Результат:


