SwiftUI NavigationView 切换色调颜色
Posted
技术标签:
【中文标题】SwiftUI NavigationView 切换色调颜色【英文标题】:SwiftUI NavigationView Toggle Tint Color 【发布时间】:2021-06-25 22:11:49 【问题描述】:我有两个导航视图。父母是白色标签,孩子是黑色标签。 当我从子视图重新访问父视图时,仍会应用子修饰符。即标签是白色而不是黑色。我了解将 View 修饰符应用于导航视图会更改所有导航视图。
所以我的问题是如何在不使用视图修饰符的情况下在导航视图中的两种文本颜色之间切换?
ParentNavigationView
ChildNavigationView
.whiteTextColorModifier()
.blackTextColorModifier()
【问题讨论】:
【参考方案1】:在 SwiftUI 视图的init()
中使用此代码。
init()
UINavigationBar.appearance().titleTextAttributes = [ NSAttributedString.Key.foregroundColor : UIColor.white] // Use your own color
UINavigationBar.appearance().barTintColor = UIColor.black
UINavigationBar.appearance().backgroundColor = UIColor.whatever
UINavigationBar.appearance().tintColor = .white
UINavigationBar.appearance().isOpaque = true
【讨论】:
在孩子解雇时仍然没有改变。也许应该添加我将子视图呈现为一张纸。它不在不同的组视图中以上是关于SwiftUI NavigationView 切换色调颜色的主要内容,如果未能解决你的问题,请参考以下文章
SwiftUI @State 在放入 NavigationView(macOS 应用程序)时仅更新一次