【发布时间】:2019-10-31 00:22:28
【问题描述】:
我有一个名为 Startup 的课程。在这个类中,我有一堆函数,我在应用程序启动时从 SceneDelegate 调用它们。
例如:
class Startup {
func doThis() {
print("I'm doing this")
}
}
如有必要,它可能会在某一时刻下载数据。发生这种情况时,我想触发一个带有活动指示器的警报,以阻止用户输入 UI,直到事情完成。
我在 ContentView 中设置了活动指示器警报,它在 EnvironmentObject var Bool 上触发。所以我需要做的就是激活这个 UI 阻塞警报 totoggle() 我的环境变量。
我遇到的问题是我无法从我的班级中触发这个环境变量。我尝试了以下方法:
当我把@EnvironmentObject var dataBusy: DataBusy
并从函数中调用它:dataBusy.isBusy = true,我收到错误消息:
致命错误:未找到 DataBusy 类型的 ObservableObject。
这表明我需要在实例化 env 对象时将其推入类的环境中,但是,当我尝试这样做时,我得到:
元组类型'()'的值没有成员'environmentObject'
所以,我不能将此环境变量添加到此类对象中。
尝试使用:
@ObservedObject var dataBusy = DataBusy()
在我的课堂上似乎没有出错,但切换它不会触发我的事件。
我想不出任何其他方式可以通过这个启动课程与我的 View 进行交流。
有什么想法吗?
【问题讨论】: