Here is my SwiftUI setup:
I have a SwiftUI view (called MapSearchView) that has a NavigationView that contains a NavigationLink.
var body: some View {
VStack {
NavigationView {
Form {
Section (header: Text("Location")){
NavigationLink (locationString, destination: GooglePlacesViewController(mapTools: $mapTools))
}...
The NavigationLink's destination is a UIViewControllerRepresentable which wraps a GooglePlacesViewController. When I am done with my GooglePlaces search (either because I made a selection or I cancelled the search), I want to programmatically pop back to the MapSearchView.
I have tried adding the following in the UIViewControllerRepresentable (GooglePlacesViewController):
@Environment(\.presentationMode) var presentationMode
var popToPrevious : Bool = false {
didSet {
if popToPrevious == true {
self.presentationMode.wrappedValue.dismiss()
}
}
}
and setting the popToPrevious to true in my Coordinator using
parent.popToPrevious = true
It does get called, but does nothing.
I have also tried in the Coordinator to call
view.viewController().navigationController.popViewController(animated: true)
(viewController() is an extension that gets the viewController for any view)
This also does nothing.
Ideas?