I need a title to be on the left side of a navigation bar. I use the following code:
.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
Text("Title")
.foregroundColor(.black)
}
}
The problem is that it is displayed blue and as a button. Is it possible to change its color to black somehow? foregroundColor
, accentColor
do not work. Also, I tried to use a disabled button with Text("Title")
inside. But it was displayed grey in that case. Not color, nor PlainButtonStyle
were applied.
By default if you add a single Text
it's displayed as a Button
.
Then, to change its color you need to set the accentColor
of the NavigationView (as this button is displayed in the navigation bar):
struct ContentView: View {
var body: some View {
NavigationView {
Text("Test")
.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
Text("Title")
}
}
}
.accentColor(.black)
}
}
If you don't want to change the accentColor
in the whole NavigationView you can do:
NavigationView {
VStack {
//...
}
.accentColor(.accentColor)
}
.accentColor(.black)
However, if you want this Text
to behave like a Text
and not like a Button
you can use the following hack:
ToolbarItem(placement: .navigationBarLeading) {
HStack {
Text("Title")
Text("")
}
.foregroundColor(.red)
}
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With