【发布时间】:2022-01-18 00:11:58
【问题描述】:
[找到 1 个解决方案!] 感谢 George 的评论,我能够找到解决方案 https://stackoverflow.com/a/70353393/882987 但如果有人有任何其他解决方案,请随时写它:)
我在 SwiftUI 中为“推送”视图设置自定义导航栏色调时遇到了一些问题。
代码是这样的,有一堆项目并点击每个项目,我们会显示/推送一些细节视图:
NavigationView {
ScrollView {
LazyVStack(alignment: .leading) {
ForEach(items) { item in
NavigationLink(destination: DetailItemView(item))) {
ListItemView(item)
}
}
}
}
}
而且我想为每个被推送的视图设置不同的导航栏色调。
有没有办法做到这一点?
【问题讨论】:
-
This 应该有帮助
-
@George 你确定吗?目标视图的主体中没有 NavigationView,它是被推送的。如果 SwiftUI View 在导航中,有什么方法可以检查它吗?
-
哦,是的,错过了。您仍然可以使用该解决方案 - 也许您可以将您想要的颜色的
Binding传递到目的地?然后在目标视图的init中,你设置了那个绑定?您可以根据需要继续向下传递绑定。虽然我想知道环境对象是否可以更好地工作并且看起来更干净。 -
@George 我现在将尝试绑定,tnx
-
太棒了,tnx @George 我使用了基本的绑定并且它有效,我会发布答案:)