我在主视图上有一个类似ObservableObject的对象。
class GlobalVariables: ObservableObject {
@Published var showContactForm:Bool? = false
}
主视图上有一个模态表,如下所示
.sheet(isPresented: XXXXX, onDismiss: {
}) {
ContactForm()
}
XXXXX
通常类似于$showContactForm
,但showContactForm
是GlobalVariables
内部的已发布对象。
我该如何绑定?我要穿什么XXXXX
?
答案 0 :(得分:1)
要绑定到可观察对象的属性,您将在视图中创建一个属性,该属性将保存对象的实例并绑定到该对象,就像使用任何本地@State
或{{1} }属性:
@Binding
(请注意,struct SomeView: View {
@StateObject var gv = GlobalVariables()
var body: some View {
// ...
.sheet(isPresented: $gv.someCondition) {
// ...
}
}
}
期望使用isPresented:
,因此Binding<Bool>
必须是非可选的someCondition
)
Bool
已被视图实例化并拥有,请使用@StateObject
GlobalVariables
-如果它是在视图外部实例化的,并且通过@ObservedObject
传递了实例init
-与@EnvironmentObject
相同,但是实例是通过@ObservedObject
传递的。