通过操作将 UIBarButtonItem 设置为 backBarButtonItem,不起作用
Posted
技术标签:
【中文标题】通过操作将 UIBarButtonItem 设置为 backBarButtonItem,不起作用【英文标题】:setting a UIBarButtonItem to backBarButtonItem with an action, does not work 【发布时间】:2018-01-23 12:32:34 【问题描述】:当我将以下 UIBarButtonItem 分配给 backBarButtonItem
时,我得到一个带有我分配的标题的按钮,但从未调用过该操作。
改为使用leftBarButtonItem
,将添加一个按钮并调用该操作。什么是压倒我的行动?我能做点什么吗?
override func viewDidLoad()
super.viewDidLoad()
let backItem = UIBarButtonItem(title: "Back",
style: .plain,
target: self,
action: #selector(backNavigationClick))
navigationItem.backBarButtonItem = backItem
@objc func backNavigationClick()
print("back clicked")
【问题讨论】:
检查你的基类是否有代码覆盖了赋值 试试这个***.com/a/37554775/7084910 【参考方案1】:如果您以这种方式使用它,您可以自定义按钮。
您需要替换此代码
navigationItem.backBarButtonItem = backItem
到
navigationItem.leftBarButtonItem = backItem
并在 backNavigationClick() 上添加此代码
@objc func backNavigationClick()
print("back clicked")
self.navigationController?.popViewController(animated: true) ***
【讨论】:
正如我在问题中提到的,我知道可以使用 leftBarButtonItem 来完成,问题是您丢失了默认的后退箭头图像。用自定义图像替换它不是我想要的。 如果您只更改后退按钮标题,请使用以下代码:self.navigationController?.navigationBar.backItem?.title = "Anything Else" 或查看***.com/a/44919649/8367837以上是关于通过操作将 UIBarButtonItem 设置为 backBarButtonItem,不起作用的主要内容,如果未能解决你的问题,请参考以下文章
通过外观为 UIBarButtonItem 设置背景图像不适用于其他 UIControlStates
UIActivityViewController 将 sourceView 设置为 UIBarButtonItem
如何将 UIImageView.image 设置为 UIBarButtonItem