我在我的自定义UITableViewCell里有两个按钮,一个是添加x1数量的已经选择的项目,另一个是减去x1。我如何设置自定义类中的按钮的IBAction,以便能够修改整个页面中的元素并修改View Controller类中的值?什么是最好的方法来解决这个问题? UIButtons在一个自定义的uitableviewcell里面
我附上了我的故事板的图像。
我在我的自定义UITableViewCell里有两个按钮,一个是添加x1数量的已经选择的项目,另一个是减去x1。我如何设置自定义类中的按钮的IBAction,以便能够修改整个页面中的元素并修改View Controller类中的值?什么是最好的方法来解决这个问题? UIButtons在一个自定义的uitableviewcell里面
我附上了我的故事板的图像。
在你cellForRow
功能,这样
cell.plusBtn.addTarget(self, action: "plusBtnClicked:", for: .touchUpInside)
cell.minusBtn.addTarget(self, action: "minusBtnClicked:", for: .touchUpInside)
添加按钮监听器然后通过
func plusBtnClicked(_ sender: AnyObject?) {
score += 1
self.tableView.reloadData()
}
func minusBtnClicked(_ sender: AnyObject?) {
score -= 1
self.tableView.reloadData()
}
接听电话,您有几种选择。
一种是使用NSNotificationCenter。您可以添加任何需要+1/-1警报的对象作为观察者,以便通过更新表视图单元格知道的量化值来提醒。
另一种方法是以VC编程方式将操作添加到按钮,并将其作为触发选择器的目标,因此按钮不会触发TableViewCell上的操作,它们直接触发需要操作的对象来处理它,而不是那些等待间接通知的对象。
这将是更好的方法? – Blackroche
@Blackroche - 绝对*不*使用NSNotificationCenter – DonMag
buttonClicked func我只是在我的视图控制器中添加?自定义UITableViewCell类中不需要代码? – Blackroche
@Blackroche正确。该表视图单元类将您的出口与代码链接起来,以便您可以在表视图数据源和委托函数中访问该表。试一下,让我知道你是否遇到问题。 –
所以在cellForRow它会然后是cell.button.addTarget(self,action:“buttonClicked:”,为:.touchUpInside)否?因为我不能创建一个IBOutlet在我的VC里面的按钮 – Blackroche