SwiftUI - 导航栏后退按钮

SwiftUI - navigationBarBackButton

  1. 如何更改 SwiftUI 中的 navigationBarBackButton 颜色? (经过 默认为蓝色)
  2. 如何更改 SwiftUI 中的 navigationBarBackButton 文本?

这是我的代码(示例):

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

        }
    }
}

默认情况下,"ExerciseDetailView" 中的 navigationBarBackButton 文本为 Exercise,颜色为 blue

我的问题是如何操作这两个?

这是一个解决方案。希望它会有所帮助。这样,你也可以使用自定义的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"))


    }
}

目前,没有可用的直接方法(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"))
         }
     }
 }