【发布时间】:2021-01-04 20:54:29
【问题描述】:
您好,我在这里遇到了问题,在 ios13 或 ios14 上运行时,我的 .sheet() 视图之间的行为不一致
我有这样的看法:
@State private var label: String = ""
@State private var sheetDisplayed = false
///Some code
var body: some View {
VStack {
Button(action: {
self.label = "A label"
self.isDisplayed = true
}) {
Text("test")
}
}.sheet(isPresented: $sheetDisplayed, onDismiss: {
self.label = ""
}) {
Text(self.label)
}
}
在 ios 13 上按预期工作 btn 单击 -> 设置标签 -> 调用表 -> 在文本视图中显示“A 标签”。
在 ios14 上,当我关闭工作表时,self.label 中有一个空字符串,因此它不显示任何内容。
我错过了什么吗?是 iOS 14 的错误还是我在 ios13 上的错误并已得到纠正。
PS:我在闭包中传递了几个其他变量,我对其进行了简化。
【问题讨论】:
-
看起来工作表是在您设置标签之前创建的。您不应该依赖 SwiftUI 创建视图的顺序,但在这种情况下,我认为这是一个值得提交给 Apple 的错误。
-
同样的事情发生在 iOS 15 中。
-
感谢您的评论。如果您遇到问题,请检查接受的答案我仍然在 ios 15 上工作