swiftui - 重绘层次结构时,SwiftuipresentationMode 被解除
问题描述
我正在编辑产品页面,它的根目录将模型作为状态并将其作为绑定传递给子页面。
在编辑页面中,我有显示选择器或文本的 if 语句,具体取决于是否设置了一个属性。
问题是,如果我在其中一个子页面中更新模型,则在重新绘制层次结构时会调用presentatonMode.dismiss()。
示例代码:
struct A: View {
@Binding var s: Bool
var body: some View {
NavigationLink(destination: AA(s: self.$s)) {
Text("A")
}
}
}
struct AA: View {
@Binding var s: Bool
var body: some View {
VStack {
Text(s.description)
Button(action: {
self.s.toggle()
}) {
Text("toggle")
}
}
}
}
struct B: View {
var body: some View {
Text("B")
}
}
struct ContentView: View {
@State var s: Bool = true
var body: some View {
NavigationView {
VStack {
if s == true {
A(s: self.$s)
} else {
B()
}
}
}
}
}
如此处所示,在 AA 子页面中,我只想更新状态并显示它,而不是调用关闭并返回内容视图。
解决方案
这是因为我正在替换整个视图层次结构。我的错
推荐阅读
- pandas - 数据框在osx中保存和加载的行大小不同
- c++ - 如何从该输入文件中取出第一列,获取该列的其余部分(逐列)
- node.js - 无论如何将量角器的输出发送到文件中?
- python - 使用pyspark时如何访问hive表中的注释?
- ios - 如何通过按音量增大或减小按钮打开“AVPlayer”中播放视频的音量?
- javascript - 我可以从另一个 nodejs 应用程序监控 nodejs 应用程序吗?
- dll - 我需要帮助在只需要 x86 的应用程序中运行 x64 .dll
- react-native - 为什么 react-native 链接只链接 ios 不能链接 android
- python - 将 CSV 写入临时文件时,“TypeError:需要类似字节的对象,而不是'str'”
- c# - 我可以在 Visual Studio 中构建一组没有 .sln 的 C# 项目吗?