首页 > 解决方案 > 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

标签: iosswiftuinavigationbarnavigationbaritems

解决方案


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")
}

推荐阅读