ios - self.navigationItem.rightBarButtonItem = 按钮不起作用?
问题描述
我有一些代码如下,它创建了一个条形按钮项,然后像许多应用程序一样添加到右侧的导航栏。
我遇到的问题是按钮/图像根本不显示。
我怎样才能解决这个问题?
仅供参考:在视图中运行的所有其他代码确实加载之后,此代码作为 setup() 函数运行。
let image = UIImage(systemName: "paperplane")?.withTintColor(.black, renderingMode: .alwaysOriginal)
let button = UIBarButtonItem(image: image,
style: .plain,
target: self,
action: #selector(showDMController))
self.navigationItem.rightBarButtonItem = button
解决方案
In your UIViewController class write this code in viewDidLoad() method
override func viewDidLoad() {
super.viewDidLoad()
let rightBarButton = UIButton(type: .custom)
rightBarButton.contentMode = .scaleAspectFit
rightBarButton.setImage(yourImage, for: .normal)
rightBarButton.setImage(yourImage, for: .selected)
rightBarButton.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(yourGestureRecognizer)))
navigationItem.rightBarButtonItem = UIBarButtonItem(customView: rightBarButton)
navigationItem.rightBarButtonItem?.style = .plain
}
@objc func yourGestureRecognizer() {
print("yourGestureRecognizer called")
}
推荐阅读
- operating-system - 操作系统如何确定瞬时时钟速度?
- javascript - 通过忽略特定列将 HTML 表数据转换为 jQuery 中的 JSON 对象
- javascript - Nginx:未捕获的类型错误:无法读取未定义的属性“长度”
- hadoop - Windows 中 Docker 上的 Hortonworks Hadoop 集群
- reactjs - create-react-app - 为什么 localhost 不工作?
- delphi - WriteBuffer(Longword, SizeOf(Longword)) 是做什么的?
- reactjs - 使用一个 S3 存储桶托管多个 React 应用程序
- python - 如何在图像前向列表显示中使用 TouchWrapper 组件?
- python - 如何通过 QNetworkAccessManager 找出下载图像的确切 url
- python - 如何对 numpy 对象数组的所有元素求和?