我有一个列表视图,其中的项目可以选择以显示该项目的详细视图,如下所示:
NavigationView {
List {
ForEach(items) { item in
NavigationLink(destination: DetailView(item: item)) {
DetailRow(item: item)
}
}
}
}
显然,创建列表视图时会创建所有详细视图。从性能和内存使用的角度来看,我认为这是有问题的。我宁愿有一个详细视图对象,然后在选择特定项目时为其设置项目值。
但是我不知道该怎么做。还是上述方法真的是一个很好的实现?
答案 0 :(得分:3)
SwiftUI确保事情高效。无需担心。至少在这个简单的例子中没有。 (this WWDC talk中最后提到的高级动画可能需要进行优化。)
SwiftUI代码是一种结构规范,可以在运行时进行分析和执行。因此,您的假设“在创建列表视图时将创建所有详细信息视图”。
您可以了解有关here的信息。
因此,您的代码是完美无缺的。