【发布时间】:2019-12-20 06:09:49
【问题描述】:
我正试图将这个问题的答案颠倒过来:
What's the idiomatic way to control a nested UIView in SwiftUI
并从子 (WebView) 发布事件并在 ParentView 中订阅。
我可以在WebView的构造函数中传递eventSender,比如:
WebView(eventSender: eventSender)
那么WebView 应该可以发送事件,但是如何订阅ParentView 中发布的事件呢?
有没有人有一个优雅的解决方案?
通常我会使用@EnvironmentObject,但这些似乎不适用于UIViewRepresentable。
更新 - 我在这里创建了问题的要点:https://gist.github.com/mattlaver/45519a58de65a304b10acaee663b06a2
请注意,我的 childView 是一个类,而不是一个结构,因为它需要从 NSObject 继承才能使用 navigationDelegate。
我想关闭这个视图(导航回到它在 navigationDelegate 启动时显示之前)。
【问题讨论】: