未调用UIBarButtonItem选择器函数

时间:2018-01-29 04:49:53

标签: ios swift xcode constraints

我所做的一切都创建了一个简单的UIBarButtonItem,但我的动作函数由于某种原因不知道为什么不被调用(即我的断点赢了甚至没有被击中)。 这是代码的屏幕截图。 enter image description here

1 个答案:

答案 0 :(得分:0)

您的功能未被调用because

  

如果使用闭包来初始化属性,请记住在执行闭包时尚未初始化实例的其余部分。这意味着您无法从闭包中访问任何其他属性值,即使这些属性具有默认值。

此外:

  

您也不能使用隐式自身属性,也不能调用任何实例的方法。

要解决此问题(在初始化期间无法访问self),您可以将UIBarButtonItem声明为lazy var,因此会在ViewController之后安全地创建已初始化:

lazy var addReminder:UIBarButtonItem = {
    return UIBarButtonItem(barButtonSystemItem: .add, target: self, action: #selector(HomePageViewController.addNewReminder))
}()