SwiftUI 在 NavigationLink 中更改后退按钮的颜色

Posted

技术标签:

【中文标题】SwiftUI 在 NavigationLink 中更改后退按钮的颜色【英文标题】:SwiftUI change the back button's color in NavigationLink 【发布时间】:2020-08-15 11:48:02 【问题描述】:

在我的 SwiftUI 代码中,我有一个选项卡式视图,在选项卡式视图中我有以下代码:

          NavigationView
            VStack
                 Form
                     Section()
                         NavigationLink(destination: Text("Second View")) 
                             Text("Elaqe")
                         
                       // section
                  //form
             
             .modifier(NavBarModifier(font: self.fontUI,text: "Support"))
         
         .navigationViewStyle(StackNavigationViewStyle())

当我点击导航链接时,我得到以下信息:

它几乎不可读,我想改变它的颜色。我该怎么做?

编辑 1:显然后退按钮的颜色取决于 tabView 的accentColor。是否可以将标签视图的强调色保持橙色并将后退按钮的颜色更改为其他颜色?

编辑 2:导航栏修饰符

func body(content: Content) -> some View 
        return content
        .zIndex(0)
        .animation(.spring())
        .padding(.top,80)
        .navigationBarTitle(Text(self.text),displayMode: .inline)
        .navigationBarHidden(false)
        .foregroundColor(.orange)
        .background(NavigationConfigurator  nc in
                       nc.navigationBar.barTintColor = UIColor(red: 243/255, green: 107/255, blue: 21/255, alpha: 1)
                       nc.navigationBar.titleTextAttributes = [
                        .foregroundColor : UIColor.white,
                        .font : self.font,
                        .kern: 1.2
                       ]
        
        .padding([.top, .leading, .trailing]))
    

【问题讨论】:

你会显示 NavBarModifier 吗? @Asperi 我将其添加到问题中。但是,我发现它与选项卡视图的强调色有关,而不是 navbarmodifier。 在 Xcode 12b3 / ios 14 上,< Support 是蓝色的,以防万一。 【参考方案1】:

我不得不更改NavigationViewaccentColor。

【讨论】:

对你有好处!请注意,它不仅会更改后退按钮的颜色,还会更改 NavigationView 中所有默认活动元素(按钮、栏项等)的颜色。

以上是关于SwiftUI 在 NavigationLink 中更改后退按钮的颜色的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 在 NavigationLink 中更改后退按钮的颜色

SwiftUI:NavigationLink 奇怪的行为

如何在 SwiftUI 中为 NavigationLink 创建工厂方法?

SwiftUI 在 NavigationLink 视图中隐藏 TabView 栏

如何在 SwiftUI 列表中设置 NavigationLink

SwiftUI 上的 NavigationLink 两次推送视图