【问题标题】:SwiftUI - navigationBarBackButtonSwiftUI - 导航栏后退按钮
【发布时间】:2019-07-10 05:31:25
【问题描述】:
- 如何更改
SwiftUI 中的navigationBarBackButton 颜色? (经过
默认为蓝色)
- 如何更改
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。
我的问题是如何操纵这两个?
【问题讨论】:
标签:
navigationbar
swiftui
【解决方案1】:
这里有一个解决方案。希望它会有所帮助。这样,您也可以使用自定义 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"))
}
}
【解决方案2】:
目前,没有可用的直接方法(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"))
}
}
}