Swiftui 如何更改NavigationView上“后退”按钮的颜色

Swiftui 如何更改NavigationView上“后退”按钮的颜色,swiftui,back-button,Swiftui,Back Button,当你点击按钮时,它会带你进入一个新的视图,并在左上角放置一个后退按钮。我不知道是什么属性控制后退按钮的颜色。我尝试添加accentColor和foregroundColor,但它们只编辑视图中的项目 var body: some View { NavigationView { NavigationLink(destination: ResetPasswordView()) { Text("Reset Password") .

当你点击按钮时,它会带你进入一个新的视图,并在左上角放置一个后退按钮。我不知道是什么属性控制后退按钮的颜色。我尝试添加accentColor和foregroundColor,但它们只编辑视图中的项目

var body: some View {
    NavigationView {
        NavigationLink(destination: ResetPasswordView()) {
            Text("Reset Password")
            .foregroundColor(Color(red: 0, green: 116 / 255, blue: 217 / 255))
            .padding()
        }
    }
}

您可以尝试将foregroundColor或accentColor设置为NavigationView(在第二个到最后一个结束括号之后)

我怀疑这是正确的方法,但我通过修改SceneDelegate.swift来设置窗口色调颜色,使其起作用

func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) {

    // Use a UIHostingController as window root view controller
    let window = UIWindow(frame: UIScreen.main.bounds)
    window.rootViewController = UIHostingController(rootView: ContentView())
    window.tintColor = .green // set the colour of the back navigation text
    self.window = window
    window.makeKeyAndVisible()
}

我试着做了一段时间同样的事情,但不认为有SwiftUI解决方案。但要完成工作(如果它适用于您的用例),其中一件事就是UIKit的外观:

UINavigationBar.appearance()

let navBarAppearance = UINavigationBarAppearance()
navBarAppearance.backButtonAppearance.normal.titleTextAttributes = [.foregroundColor: UIColor.white]

您可以使用NavigationView上的
accentColor
属性设置后退按钮的颜色,如本例所示:

var body: some View {
    NavigationView {
        List(1..<13) { item in
            NavigationLink(destination: Text("\(item) x 8 = \(item*8)")) {
                Text(String(item))
            }
        }.navigationBarTitle("Table of 8")
    }.accentColor( .black) // <- note that it's added here and not on the List like navigationBarTitle()
}
var主体:一些视图{
导航视图{
列表(1..<代码>
.navigationBarBackButtonHidden(真)
.navigationBarItems(领先:
按钮(操作:{presentation.wrappedValue.disease()},标签:{
HStack{
图像(系统名称:“V形向后”)
.foregroundColor(颜色(UIColor.darkGray))
文本(用户名)
.foregroundColor(颜色(UIColor.darkGray))
.font(UIHelper.largeSize())
}
})

向NavigationView添加.accentColor修改器,如下所示

NavigationView {
    Text("Hello World")
      .toolbar {
                    ToolbarItem(placement: .navigationBarLeading) {
                        Button("Close") { }
                    }
            }
 }
 .accentColor(.themeColor)

是的,如果我想改变所有的话,那就行了,但是我只想在一个屏幕上改变它,在这个屏幕上我有一个不同的背景颜色。这是最好的方法,基于这里的所有答案。这是唯一一种快速的方法,而且不需要全局编辑SceneDelegate。非常快速,非常好的解决方案。