代码之家  ›  专栏  ›  技术社区  ›  benjamin852

未调用UIBarButtonItem选择器函数

  •  2
  • benjamin852  · 技术社区  · 8 年前

    我确实创建了一个简单的UIBarButtonItem,但由于某种原因,我的操作函数不会被调用,不知道为什么(例如,我的断点甚至不会被击中)。 下面是代码的屏幕截图。 enter image description here

    1 回复  |  直到 8 年前
        1
  •  3
  •   mugx    8 年前

    未调用您的函数 because :

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

    此外:

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

    解决此问题(无法访问 self 在初始化期间)您可以声明 UIBarButtonItem lazy var ,因此将在 ViewController 已初始化:

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