ios - Swiftui:后退按钮的导航栏色调没有改变
问题描述
在应用程序中,用户可以根据一组特定的选项更改强调色。强调色以这种方式设置,但是,也设置了一个 AccentColor 资源。我已经尝试删除它,但它并没有解决问题。
var body: some Scene {
WindowGroup {
ContentView(user: $data.user, saveAction: data.save)
.onAppear(perform: data.load)
.tint(data.user.accentColor == nil ? Color("AccentColor") : data.user.accentColor!.getColor())
}
}
重音颜色存储为字符串,getColor() 函数获取该字符串并为其返回一个 Color()。
我还有一些视图可以根据用户选择的强调色来改变颜色。使用当前代码,它适用于除导航栏中的后退按钮之外的所有内容。对 Picker 中的复选标记也执行相同的操作。我怎样才能让那些与用户选择的颜色相匹配?
您可以看到强调色设置为橙色。在下面你可以看到后退按钮仍然是蓝色的。
如果你想测试一下。您可以设置如下所示的内容视图。将 AccentColor 资源留空,或者您可以将其设置为随机颜色。您会看到后退按钮不会随着 tint() 中的内容而改变颜色。NavigationLinkView 只是一个视图,其中没有任何内容,而是一个具有导航标题的列表。
struct ContentView: View {
var body: some View {
NavigationView {
List {
NavigationLink("Test Link", destination: {
NavigationLinkView()
})
Button("Fake Button") {
}
}
.navigationTitle("Test")
}
.tint(.yellow)
}
}
编辑:在进一步测试之后,accentColor() 似乎确实有效,但是,Xcode 表示很快就会弃用它并使用 tint()。似乎它是 tint() 的问题。
解决方案
推荐阅读
- typescript - 'styled()' 函数删除了 'component' 道具支持
- c# - 为什么 Any 不从此 linq 查询中删除子项?
- android - 如何在 ConstraintLayout 中部分允许 LTR、RTL 支持
- python - Extracting separate images from YOLO bounding box coordinates
- redis - Redis 集群添加节点失败并显示 [ERR] 并非所有 16384 个插槽都被节点覆盖
- javascript - replaceWith 不移除元素
- ruby-on-rails - rspec-api-documentation gem 显示“[二进制数据]”而不是响应正文
- r - 从 RDS 文件中提取函数/代码
- python - 数据清理:在可变公司名称中分组
- android - 如何在设备中注册新指纹?