Swift选择器方法没有被调用



我创建了一个操作类来存储选择器,然后将addTarget添加到按钮上,但是当我单击它时,操作类中的方法没有被调用

class ItemCardAction {

static var shared: ItemCardAction = ItemCardAction()

private init() {

}

var action: Selector = #selector(ItemCardAction.shared.buttonPressed)
@objc func buttonPressed(_ sender: UIButton!) {
print("TEST")
AppEngine.shared.updateItem(tag: sender.tag)
AppEngine.shared.notigyAllObservers()
//self.updateUI()
}
}

添加目标
button.addTarget(self, action: ItemCardAction.shared.action, for: .touchDown)

你需要的是

button.addTarget(ItemCardAction.shared, action: ItemCardAction.shared.action, for: .touchUpInside)

如果你仔细看addTarget方法,第一个参数是target,当button接收(在这个特定的情况下)一个touch inside事件时,iOS会在target指定中寻找指定的selector(在action参数中指定)。在您的情况下,您将目标指定为self,并且显然选择器在self的范围内不可用,因此什么也不会发生:)

相关内容

  • 没有找到相关文章

最新更新