【问题标题】:Remove the back button text删除后退按钮文本
【发布时间】:2020-08-28 03:52:26
【问题描述】:
目前正在尝试删除后退按钮上前一个 VC 的标题。关注apple's documentation我用过:
let backBarButtton = UIBarButtonItem(title: "", style: .plain, target: nil, action: nil)
navigationItem.backBarButtonItem = backBarButtton
但是后退按钮的标题并没有消失!控制台说它是空的(“”),但它显然仍然显示给用户。
我不想使用诸如将前一个 VC 的前一个标题设置为“”之类的技巧,但目前似乎没有其他方法起作用。有什么建议吗?
【问题讨论】:
标签:
ios
swift
uinavigationcontroller
uinavigationbar
uinavigationitem
【解决方案1】:
以extension of UINavigationController 试试这个函数:
func setBackButtonTitle(_ title: String) {
if self.navigationBar.topItem != nil {
let leftBarButtonItem: UIBarButtonItem = UIBarButtonItem(title: title, style: UIBarButtonItem.Style.plain, target: self, action: #selector(self.backButtonAction))
self.navigationBar.topItem?.backBarButtonItem = leftBarButtonItem
} else {
if self.navigationBar.backItem != nil {
self.navigationBar.backItem?.title = title
}
}
}
【解决方案2】:
试试这个:
self.navigationController?.navigationBar.topItem?.backBarButtonItem = backBarButtton
当其他控制器推到当前控制器之上时,您的代码会更改后退按钮的外观。但是你需要修改当前控制器上的后退按钮。
查看 backBarButtonItem 上的文档:
当此导航项紧挨在顶部项的下方时
堆栈,导航控制器为
此导航项的导航栏。当此属性为零时,
导航项使用其标题属性中的值来创建一个
适当的后退按钮。如果要指定自定义图像或
后退按钮的标题,您可以分配自定义栏按钮项
(使用您的自定义标题或图像)改为此属性。什么时候
配置您的栏按钮项目,不要为其分配自定义视图;
导航项忽略后栏按钮中的自定义视图
无论如何。
【解决方案3】:
你可以用 UIButton 来初始化它
let button = UIButton()
let item = UIBarButtonItem(customView: button)
navigationItem.backBarButtonItem = item