SwiftUI如何使用“委托事件处理程序EventArgs”方式在C中将数据从子级传递到父级
我已经读过这篇文章了 然而,在最初的海报编辑了他自己的答案后,他提出了一种与他自己的问题不匹配的方法。 不幸的是,我还没有达到在这个帖子上发表评论的程度 这是上面文章中重复的代码示例,用于解释问题:SwiftUI如何使用“委托事件处理程序EventArgs”方式在C中将数据从子级传递到父级,swift,swiftui,Swift,Swiftui,我已经读过这篇文章了 然而,在最初的海报编辑了他自己的答案后,他提出了一种与他自己的问题不匹配的方法。 不幸的是,我还没有达到在这个帖子上发表评论的程度 这是上面文章中重复的代码示例,用于解释问题: struct ChildView: View { var function: () -> Void var body: some View { Button(action: { self.function() }, la
struct ChildView: View {
var function: () -> Void
var body: some View {
Button(action: {
self.function()
}, label: {
Text("Button")
})
}
}
struct ContentView: View {
var body: some View {
ChildView(function: { self.setViewBackToNil() })
}
func setViewBackToNil() {
print("I am the parent")
}
}
现在我想向setViewBackToNilmyStringParameter添加一个字符串参数:String这里是可能的解决方案。使用Xcode 11.4/iOS 13.4进行测试
struct ChildView: View {
var function: (String) -> Void
@State private var value = "Child Value"
var body: some View {
Button(action: {
self.function(self.value)
}, label: {
Text("Button")
})
}
}
struct ContentView: View {
var body: some View {
ChildView { self.setViewBackToNil(myStringParameter: $0) }
}
func setViewBackToNil(myStringParameter: String) {
print("I am the parent: \(myStringParameter)")
}
}