后退按钮项目替换为“后退”

Posted

技术标签:

【中文标题】后退按钮项目替换为“后退”【英文标题】:Back button item replaced with "Back" 【发布时间】:2015-12-22 14:08:26 【问题描述】:

ios 将标准的先前视图控制器标题替换为标准的“后退”标题时,我需要拦截。

来自 Apple 开发者网站 https://developer.apple.com/library/ios/documentation/UIKit/Reference/UINavigationItem_Class/#//apple_ref/occ/instp/UINavigationItem/backBarButtonItem

注意

如果您的后退按钮的标题太长而无法容纳导航栏上的可用空间,则导航栏可能会替换 字符串“Back”代替按钮的原始标题。 仅当返回按钮由 以前的视图控制器。如果新的***视图控制器有 自定义左栏按钮项——leftBarButtonItems 中的一个对象或 其导航项的 leftBarButtonItem 属性——导航栏 不会更改按钮标题。

所以,我需要拦截它何时完成,用我的自定义标题更改后面的文本,否则保留以前的 ViewController 标题。

(我用这个命令改变了 viewDidLoad() 中的后面的标题,效果很好:

navigationController?.navigationBar.topItem?.backBarButtonItem = UIBarButtonItem(title: "my title", style: .Plain, target: nil, action: nil)

【问题讨论】:

【参考方案1】:

您可以轻松地检查字符串的长度使其过长,如果您的自定义标题是该长度,请更改后退按钮的标题。但是,这对于不同的屏幕尺寸来说并不好。

我认为更好的解决方案是从以前的视图控制器推送。有什么理由不能从以前的控制器推送?我假设如果你想要“后退”功能,那么你已经从某个地方推动了,所以这应该不是问题。

【讨论】:

以上是关于后退按钮项目替换为“后退”的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Swift 中替换 Material 中的后退按钮

iOS13导航栏后退栏按钮项目色调颜色

导航栏项目中未显示标题和后退按钮(iOS 7)

以编程方式创建的后退按钮没有箭头

更新整个项目的导航栏后退按钮图像

xcode swift - 无法编辑后退按钮