【发布时间】:2021-10-30 19:32:56
【问题描述】:
在 UIKit 中,UINavigationItem 有一个名为 backButtonDisplayMode 的有用属性,可用于配置后退按钮的行为。
我只是想知道 SwiftUI 是否有类似的东西?或者,在 SwiftUI 中实现这一目标的最佳方法是什么?我宁愿不必使用自定义的后退按钮,并且真的只希望后退按钮说“后退”而不是前一个视图的导航标题。
【问题讨论】:
在 UIKit 中,UINavigationItem 有一个名为 backButtonDisplayMode 的有用属性,可用于配置后退按钮的行为。
我只是想知道 SwiftUI 是否有类似的东西?或者,在 SwiftUI 中实现这一目标的最佳方法是什么?我宁愿不必使用自定义的后退按钮,并且真的只希望后退按钮说“后退”而不是前一个视图的导航标题。
【问题讨论】:
您必须做一个自定义按钮,因为 SwiftUI 是声明式的,而不是命令式的,但它们非常简单。
struct CustomBackButton: View {
@Environment(\.presentationMode) var presentationMode
var body: some View {
Text("Hello, World!")
.navigationBarBackButtonHidden(true)
.toolbar {
ToolbarItem(placement: .navigationBarLeading) {
Button(action: {
self.presentationMode.wrappedValue.dismiss()
}) {
HStack {
Image(systemName: "chevron.left")
Text("Back")
}
}
}
}
}
}
【讨论】:
.font(Font.body.weight(.semibold)) 添加到图像中以复制默认的系统后退按钮。