问题
When you click on the button it takes you to a new view and puts a back button in the top left. I can't figure out what property controls the color of the back button. I tried adding an accentColor and foregroundColor but they only edit the items inside the view.
var body: some View {
NavigationView {
NavigationLink(destination: ResetPasswordView()) {
Text("Reset Password")
.foregroundColor(Color(red: 0, green: 116 / 255, blue: 217 / 255))
.padding()
}
}
}
回答1:
You can use the accentColor
property on the NavigationView to set the back button color, like in this example:
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()
}
回答2:
I doubt this is the right way to do it, but I got it to work by modifying the SceneDelegate.swift to set the window tint color.
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()
}
回答3:
I was trying to do the same for a while, and do not think there is SwiftUI solution yet. One of things that will get work done though (if it works for your use case) is UIKit's appearance:
UINavigationBar.appearance().tintColor = .black
回答4:
This worked for me:
let navBarAppearance = UINavigationBarAppearance()
navBarAppearance.backButtonAppearance.normal.titleTextAttributes = [.foregroundColor: UIColor.white]
回答5:
You could try setting the foregroundColor or the accentColor to the NavigationView (after your second to last closing bracket)
来源:https://stackoverflow.com/questions/56534899/how-to-change-color-of-back-button-on-navigationview