如果上一个视图没有标题,如何让导航栏后退按钮总是说回来?

Posted

技术标签:

【中文标题】如果上一个视图没有标题,如何让导航栏后退按钮总是说回来?【英文标题】:How to make Navigation Bar back button always say back if the previous view has no title? 【发布时间】:2020-05-15 12:21:19 【问题描述】:

例如如果您从视图 A 导航到视图 B,视图 B 通常会在导航栏左侧显示一个后退按钮,上面写着“"View A")。

当我在视图 A 中没有标题时,视图 B 中的后退按钮只是 "<",正如预期的那样,因为视图 ​​A 没有标题。

现在有没有办法让它在以前的视图中没有标题时,它应该总是说"< Back"

【问题讨论】:

【参考方案1】:

您可以制作自己的后退按钮,可以个性化:

把它放在你的视图顶部:

@Environment(\.presentationMode) var presentationMode

var btnBack : some View  Button(action: 
    self.presentationMode.wrappedValue.dismiss()
) 
    Text("< Back")
    

在该视图中的堆栈末尾:

.navigationBarBackButtonHidden(true)    
.navigationBarItems(leading: btnBack)

【讨论】:

完美运行!有没有办法让它像原生一样,即“ 在 Text("Back") 之前使用 Image(systemName: "chevron.left")。 @pizzae,据我所知,这种方法禁用了向后滑动,以防万一。 @Asperi 是的,我刚刚遇到了这个问题,并设法用这个答案中的代码解决了这个问题:***.com/a/60067845/6280334

以上是关于如果上一个视图没有标题,如何让导航栏后退按钮总是说回来?的主要内容,如果未能解决你的问题,请参考以下文章

如何设置导航栏的后退项

如何在标签栏视图控制器中显示后退按钮?

无法让默认 UINavigationController 后退按钮工作

按下后退按钮时,自动折叠移动设备上的下拉导航栏菜单

xcode 5中的导航栏对象不显示后退按钮并且没有功能

UINavigationItem 后退按钮返回到上一个导航项,但视图没有改变