我有一个SwiftUI视图,该视图被推送到导航堆栈上(使用NavigationLink
)。
此视图是基于UIViewRepresentable
的{{1}}包装的视图。
要从我的基于UIKit
的视图中接收委托事件,有一个UIKit
类(在Coordinater
中实例化了)。
我现在想在其中一个委托方法调用表明某种情况时关闭我的SwiftUI视图。
我知道消除makeCoordinator()
推送视图的唯一方法是:
NavigationLink
但是当我在我的委托方法的实现中调用时(即在我的@Environment(\.presentationMode) var presentationMode: Binding<PresentationMode>
内部):
Coordinator
这会导致崩溃:self.mySwiftUI.presentationMode.wrappedValue.dismiss()
。
知道SwiftUI是创建UI的声明性方式,我怎么才能调用这个Thread 1: Fatal error: Reading Environment<Binding<PresentationMode>> outside View.body
函数呢?例如,当dismiss()
变量更改时,是否可以调用函数?