SwiftUI如何从视图调用或通知scenedelegate

Posted

技术标签:

【中文标题】SwiftUI如何从视图调用或通知scenedelegate【英文标题】:SwiftUI how to call or notify scenedelegate from a view 【发布时间】:2020-02-15 04:41:18 【问题描述】:

我有一些代码(蓝牙管理器)想作为应用程序的单例实现。

我在网上阅读了许多关于传递环境变量和使用观察对象共享状态的教程,这对于将数据从场景委托传递到视图(例如找到的 BT 设备列表)很有用。但是,视图如何与场景委托对话?

例如,当用户单击我的设备时,我想连接到它,这需要单击按钮将某些方法调用回单例蓝牙管理器所在的场景委托中?

【问题讨论】:

你可以看到一个例子in this SO post。目标不同,但方法是一样的。 @Asperi 哎哟,对了那个通知。我仍在寻找在 swiftUI 中执行此操作的好方法,但这应该可行。感谢您的信息! 【参考方案1】:

可能的解决方案:

使用状态变量和方法创建一个符合ObservableObject 的类。在场景委托中将其作为单例对象初始化,然后将其作为环境对象传递给视图。

在每个视图中,我们都可以访问该共享单例中的方法和状态。

【讨论】:

以上是关于SwiftUI如何从视图调用或通知scenedelegate的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI |在所有视图中可用的模型或类中创建错误消息

如何从swiftui视图调用uikit viewcontroller方法

从 SwiftUI 应用程序中更改推送通知授权

如何在 SwiftUI 中从通知深层链接到屏幕?

如何使用 SwiftUI 打开通知操作的自定义视图?

SwiftUI:如何使通知交互更改为我的视图的一部分?