我认为这是一个非常简单的逻辑,但是在任何地方都找不到解决方案。基本上,我只想访问在修饰符onDisappear的闭包中调用onDisappear()修饰符的视图。
struct HostView: View {
var body: some View {
EditView()
.onDisappear {
//I want to access the EditView in here and get property1
}
}
}
struct EditView: View {
@State var property1: Int?
}
我找到了一个使用包含静态变量的全局类的解决方案。像这样
class AClass {
static var tempVar: Int?
}
然后,像这样使用。
struct HostView: View {
var body: some View {
EditView()
.onDisappear {
//I want to access the EditView in here and get property1
let a = AClass.tempVar
}
}
}
struct EditView: View {
@State var property1: Int?
//call updateTempVar() somewhere here
func updateTempVar() {
AClass.tempVar = property1
}
}
但是,我认为这不是正确的解决方案。我认为应该还有其他更简单的方法...
非常感谢您的帮助!
答案 0 :(得分:0)
由于您的HostView
是一个简单的结构,因此您可以将EditView
作为var
放在HostView
中,如下所示:
struct HostView: View {
var editView = EditView()
var body: some View {
editView
.onDisappear {
print(editView.property1)
}
}
}