Таким образом, я фактически получил следующее решение, которое действительно работает. Я перезаписываю элементы панели навигации примерно так:
.navigationBarItems(leading:
Image("backButton")
.foregroundColor(.blue)
.onTapGesture {
self.presentationMode.wrappedValue.dismiss()
}
)
Единственная проблема с этим состояла в том, что жест спины не работал, и это было решено путем фактического расширения UINavigationController
extension UINavigationController: UIGestureRecognizerDelegate {
override open func viewDidLoad() {
super.viewDidLoad()
interactivePopGestureRecognizer?.delegate = self
}
public func gestureRecognizerShouldBegin(_ gestureRecognizer: UIGestureRecognizer) -> Bool {
return viewControllers.count > 1
}
}
Теперь все выглядит именно так, как я хочу, решение вроде хакерское ... но пока оно работает, надеюсь SwiftUI немного повзрослеет, так что это можно сделать проще.