iOS选择器未调用UIBarButtonItem

时间:2018-12-12 19:53:53

标签: swift uikit uinavigationbar selector uibarbuttonitem

我有一些相当简单的代码,并试图弄清楚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 个答案:

答案 0 :(得分:1)

目标不应为空

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