SwiftUI - навигацияBarBackButton - PullRequest
0 голосов
/ 10 июля 2019
  1. Как я могу изменить navigationBarBackButton цвет в SwiftUI? (от по умолчанию это синий)
  2. Как я могу изменить navigationBarBackButton текст в SwiftUI?

Это мой код (пример):

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"))

        }
    }
}

По умолчанию navigationBarBackButton в "ExerciseDetailView" имеет текст Упражнение и цвет синий .

У меня вопрос, как я могу манипулировать этими двумя?

Ответы [ 2 ]

0 голосов
/ 10 июля 2019

В настоящее время прямых методов для этого нет (XCode 11 beta 3). Однако для этого вы можете использовать метод UINavigationBar,

см. Ниже код:


 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"))
         }
     }
 }
0 голосов
/ 10 июля 2019

Вот решение.Надеюсь, это поможет.Таким образом, вы также можете использовать пользовательский UIColor.

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"))


    }
}
...