2017-06-21 63 views
0

我在我的自定义UITableViewCell里有两个按钮,一个是添加x1数量的已经选择的项目,另一个是减去x1。我如何设置自定义类中的按钮的IBAction,以便能够修改整个页面中的元素并修改View Controller类中的值?什么是最好的方法来解决这个问题? enter image description hereUIButtons在一个自定义的uitableviewcell里面

我附上了我的故事板的图像。

回答

1

在你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() 
} 
+0

buttonClicked func我只是在我的视图控制器中添加?自定义UITableViewCell类中不需要代码? – Blackroche

+0

@Blackroche正确。该表视图单元类将您的出口与代码链接起来,以便您可以在表视图数据源和委托函数中访问该表。试一下,让我知道你是否遇到问题。 –

+0

所以在cellForRow它会然后是cell.button.addTarget(self,action:“buttonClicked:”,为:.touchUpInside)否?因为我不能创建一个IBOutlet在我的VC里面的按钮 – Blackroche

0

接听电话,您有几种选择。

一种是使用NSNotificationCenter。您可以添加任何需要+1/-1警报的对象作为观察者,以便通过更新表视图单元格知道的量化值来提醒。

另一种方法是以VC编程方式将操作添加到按钮,并将其作为触发选择器的目标,因此按钮不会触发TableViewCell上的操作,它们直接触发需要操作的对象来处理它,而不是那些等待间接通知的对象。

+0

这将是更好的方法? – Blackroche

+1

@Blackroche - 绝对*不*使用NSNotificationCenter – DonMag