没有为 UIBarButtonItem 调用 iOS 选择器

Posted

技术标签:

【中文标题】没有为 UIBarButtonItem 调用 iOS 选择器【英文标题】:iOS selector not getting called for UIBarButtonItem 【发布时间】:2018-12-12 19:53:53 【问题描述】:

我有一些相当简单的代码,并试图弄清楚为什么 uibarbuttonitem 没有触发选择器:

TableView 的viewDidLoad 方法:

override func viewDidLoad() 
    super.viewDidLoad()

    // Uncomment the following line to preserve selection between presentations
    self.clearsSelectionOnViewWillAppear = false

    // this line adds a button to top right
    let addNewChecklistItemButton = UIBarButtonItem(barButtonSystemItem: .add,
                                                    target: nil,
                                                    action: #selector(self.addNewChecklistItemToDataModel))

    self.navigationItem.rightBarButtonItem = addNewChecklistItemButton

方法调用:

@objc func addNewChecklistItemToDataModel() 
    print("adding new item...")

    <...>

正在添加按钮(在我输入此代码之前不可见),当我按下它时,按钮单击动画,但我的控制台不显示打印的文本。

在阅读UIBarButtonItem selector not working 之后,我想知道我的UITableViewController 嵌入在UITabViewControllerUINavigationViewController 中是否会影响按钮的范围?如果没有,有人看到我缺少的东西吗?

【问题讨论】:

【参考方案1】:

目标不应为零

 let addNewChecklistItemButton = UIBarButtonItem(barButtonSystemItem: .add,
                                                target: self,
                                                action: #selector(self.addNewChecklistItemToDataModel))

【讨论】:

以上是关于没有为 UIBarButtonItem 调用 iOS 选择器的主要内容,如果未能解决你的问题,请参考以下文章

UIBarButtonItem 如何禁用辅助功能 (iOS)

带有customView的自动布局iOS 11工具栏UIBarButtonItem

UIToolBar 上的 UIBarbuttonItem 的动作没有被调用

UIBarbuttonItem 没有调用动作方法

iOS 11 UIBarButtonItem 图像没有调整大小

UIBarButtonItem 仅在我滑动时被调用