SwiftUI中是否有类似UIKit backButtonDisplayMode的等效功能?
问题解答
SwiftUI 提供了和 UIKit backButtonDisplayMode 对应的原生能力,无需自定义返回按钮即可实现返回按钮仅显示「Back」的需求,分版本实现方案如下:
iOS 16+ 最优方案
SwiftUI 从 iOS 16 开始内置了 navigationBackButtonDisplayMode 修饰符,和 UIKit 的对应属性能力完全对齐,直接在需要显示「Back」返回按钮的子页面添加即可:
struct TargetView: View { var body: some View { // 你的页面内容 Text("目标页面") .navigationBackButtonDisplayMode(.minimal) } }
其中 .minimal 模式就是仅显示标准的「Back」文本,完全忽略上一级页面的导航标题,完全符合需求。
兼容 iOS 14/15 方案
如果需要支持 iOS 16 以下的版本,仅需要在上一级页面(跳转至目标页的父页面)修改返回按钮标题即可,不需要改动目标页的代码:
struct ParentView: View { var body: some View { NavigationStack { // 若需兼容iOS13可替换为NavigationView List { NavigationLink("跳转至目标页") { TargetView() } } .navigationTitle("父页面原有标题") // 这里设置后,所有从当前页面push出去的子页返回按钮都会显示Back .navigationBarBackButtonTitle("Back") } } }
注意事项
- 上述两种方案都使用系统原生返回按钮,会完整保留侧滑返回手势、系统按钮的交互效果和自适应样式,不需要自己处理手势和适配逻辑
- 不需要额外隐藏系统返回按钮,也不需要自定义按钮视图,完全符合需求
内容的提问来源于stack exchange,提问作者dsynkd
相关产品推荐
相关产品推荐

