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 应用程序)时仅更新一次

NavigationView 的内容未显示 SwiftUI

SwiftUI:如何更改 NavigationView 的色调(背景颜色)?

NavigationView高度不规则swiftui

SwiftUI NavigationView 不记得状态

SwiftUI 弹出框在 NavigationView 中时消失