首页 > 解决方案 > UINavigation 控制器后退按钮标题显示上一个标题

问题描述

我想将后退按钮标题设置为“后退”。我在故事板(导航项->后退按钮)中设置了标题“返回”,它似乎在 iPhone X 上工作。

在 iPhone SE 上进行测试时,我看到以前的 VC 标题作为后退按钮标题。所以现在它显示为“< APP NAME.......APP NAME.......”,这有点奇怪。

如果 iPhone X 像上面那样显示它是有道理的,因为屏幕宽度更长,因此它有更多空间容纳更长的标题。

我能做些什么来完成这项工作?我已经尝试过一些类似的东西:子类 UINavigation 控制器并添加:

self.navigationItem.backBarButtonItem = UIBarButtonItem(title: "Back", style: .plain, target: nil, action: nil)

执行上述操作,但直接在视图控制器中。

在 View Controller 标题周围添加空格以使其更长(不起作用,如果它起作用了,那就有点 hacky)。

任何帮助,将不胜感激。

标签: iosswiftuinavigationcontroller

解决方案


要修改后退按钮,您应该在推送之前在启动 segue 的视图控制器上更新它:

override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
    let backItem = UIBarButtonItem()
    backItem.title = "Back"
    navigationItem.backBarButtonItem = backItem // This will show in the next view controller being pushed
}

推荐阅读