如何修改NavigationStack中navigationTitle的文字颜色?
方法一:自定义导航栏标题(精准控制样式)
直接移除默认的.navigationTitle修饰符,通过toolbar添加自定义标题元素,可完全控制文字的颜色、字体等样式:
struct InterestView: View { var body: some View { NavigationStack { VStack { } .toolbar { // 自定义导航标题 ToolbarItem(placement: .principal) { Text("interest".uppercased()) .foregroundColor(Color.red) // 替换为你需要的颜色 .font(.title) // 可选:调整字体大小 } ToolbarItemGroup(placement: .navigationBarTrailing) { Button { print("Image tapped!") } label: { Text("add".uppercased()) .foregroundColor(Color.primaryColor) .font(.headline) } } } } } }
方法二:通过导航栏全局色调修改(影响范围广)
如果希望导航栏内所有可交互元素(包括标题、返回按钮、工具栏按钮)统一使用某一颜色,可设置navigationBarTintColor(iOS 16+):
struct InterestView: View { var body: some View { NavigationStack { VStack { } .navigationTitle("interest".uppercased()) .toolbar { ToolbarItemGroup(placement: .navigationBarTrailing) { Button { print("Image tapped!") } label: { Text("add".uppercased()) .foregroundColor(Color.primaryColor) .font(.headline) } } } .navigationBarTintColor(.red) // 该颜色会同步应用到标题和导航栏内其他元素 } } }
注意:
navigationBarTintColor会同时改变标题和导航栏内其他元素的颜色,若只需单独修改标题颜色,优先使用方法一。
内容的提问来源于stack exchange,提问作者softshipper
相关产品推荐
相关产品推荐

