在全球范围内存储SwiftUI功能



我使用ObservableObject来存储@Published属性,但如何存储可以在任何视图中使用的全局函数?此函数本身是否可以包含对@Published属性的调用?

以下是一些可能性:

class ViewModel: ObservableObject {
// declare as a property
let func1: () -> Void = {
print("func1")
}
// declare as a `func`
func func2() {
print("func2")
}
}
struct ContentView: View {
@ObservedObject var vm = ViewModel()
var body: some View {
Text("asd")
.onAppear(perform: vm.func1)
// .onAppear(perform: vm.func2)
}
}

您可以使用@EnvironmentObject使它们在全局范围内可用。

最新更新