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