我在我的自定義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