Mehdi
Mehdi

Reputation: 1362

SwiftUI - navigationBarBackButton

  1. How can I change navigationBarBackButton color in SwiftUI? (by default it's blue)
  2. How can I change navigationBarBackButton text in SwiftUI?

This is my code (an example):

struct ExercisesList : View {
    var exercises : [Exercise]
    var body: some View {

        NavigationView {
            List(self.exercises.identified(by: \.number)) {exercise in
                NavigationLink(destination: ExerciseDetailView(exercise: exercise)) {
                    ExerciseRow(exercisE: exercise)
                }
            }
            .navigationBarTitle(Text("Exercises"))

        }
    }
}

By default, the navigationBarBackButton in "ExerciseDetailView" has a text of Exercise and color of blue.

My question is how can I manipulate these two?

Upvotes: 0

Views: 651

Answers (2)

Rubaiyat Jahan Mumu
Rubaiyat Jahan Mumu

Reputation: 4127

Here is a solution. Hope it will help. In this way, you can use custom UIColor also.

struct ExercisesList : View {
    var exercises : [Exercise]

    var body: some View {

        UINavigationBar.appearance().tintColor = UIColor.red

        return  NavigationView {
            List(self.exercises.identified(by: \.number)) { exercise in
                NavigationLink(destination: ExerciseDetailView(exercise: exercise)) {
                    ExerciseRow(exercisE: exercise)
                }
            }
        }
        .navigationBarTitle(Text("Exercises"))


    }
}

Upvotes: 1

Ketan Odedra
Ketan Odedra

Reputation: 1283

Currently, No direct methods are available for that(XCode 11 beta 3). However You can use UINavigationBar method for that,

see below code :


 struct ExercisesList : View {
     var exercises : [Exercise]

     init() {
       //navigationBarBackButton color will change//
         UINavigationBar.appearance().tintColor = .purple
       // you can also set backgroundColor//
         UINavigationBar.appearance().backgroundColor = .white
     }

     var body: some View {

         NavigationView {
             List(self.exercises.identified(by: \.number)) {exercise in
                 NavigationLink(destination: ExerciseDetailView(exercise: exercise)) {
                     ExerciseRow(exercisE: exercise)
                 }
             }
             .navigationBarTitle(Text("Exercises"))
         }
     }
 }

Upvotes: 1

Related Questions