2017-06-21 23 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