如何在更改的条件下弹出SwiftUI NavigationLink视图(从委托接收)?

时间:2019-10-04 11:01:03

标签: ios swift navigation swiftui

我有一个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()变量更改时,是否可以调用函数?

0 个答案:

没有答案