这是我的SwiftUI设置:
我有一个SwiftUI视图(称为MapSearchView),该视图的NavigationView包含一个NavigationLink。
var body: some View {
VStack {
NavigationView {
Form {
Section (header: Text("Location")){
NavigationLink (locationString, destination: GooglePlacesViewController(mapTools: $mapTools))
}...
NavigationLink的目标是包装GooglePlacesViewController的UIViewControllerRepresentable。当我完成GooglePlaces搜索后(因为我做了选择或取消了搜索),我想以编程方式弹出回到MapSearchView。
我已经尝试在UIViewControllerRepresentable(GooglePlacesViewController)中添加以下内容:
@Environment(\.presentationMode) var presentationMode
var popToPrevious : Bool = false {
didSet {
if popToPrevious == true {
self.presentationMode.wrappedValue.dismiss()
}
}
}
并且使用以下方法在我的协调器中将popToPrevious设置为true:>
parent.popToPrevious = true
它确实被调用,但是什么也不做。
我也曾尝试在协调器中致电
view.viewController().navigationController.popViewController(animated: true)
(viewController()是获取任何视图的viewController的扩展)
这也无济于事。
想法?
这是我的SwiftUI设置:我有一个SwiftUI视图(称为MapSearchView),该视图具有包含NavigationLink的NavigationView。 var body:some View {VStack {NavigationView {...
如果您创建拥有者视图的协调器(即您的代表人,那么请在需要时尝试直接致电]