我有一个类BrandOfCarTableViewCell:UITableViewCell,它有标签和按钮。
一个按钮增加标签上的数字,第二个减少它
另外,我有一个第二类ClassOfTransportTableViewController:UITableViewController,它具有tableView的所有操作
我需要为tableViewController提供单击按钮的indexOf单元格。我还需要传递标签(数量)的值
我怎样才能使用Swift语言?
答案 0 :(得分:0)
代码的基本结构应如下所示。
protocol BrandOfCarTableViewCellDelegate {
func updateLabelCountWithValue:(cellIndex: Int ,newValue :Int)
}
class BrandOfCarTableViewCell: UITableViewCell {
//This class can have your label and the two buttons
var cellIndex: Int = 0
var delegate: BrandOfCarTableViewCellDelegate?
func setUpCellWithIndex:(index: Int)
self.cellIndex = index
}
@IBAction func buttonTapped() {
//Call the delegate
}
}
class TypeOfTransportTableViewController: UITableViewController, BrandOfCarTableViewCellDelegate {
func updateLabelCountWithValue:(cellIndex: Int ,newValue :Int) {
}
}
答案 1 :(得分:0)
非常感谢KUMAR !!!
protocol BrandOfCarTableViewCellDelegate{
func updateLabelWithValueAtIndex(cellIndex:Int, newValue: Int)
}
class BrandOfCarTableViewCell: UITableViewCell {
var delegate:BrandOfCarTableViewCellDelegate?
@IBAction func btnPlus(sender: AnyObject) {
cellIndex = btnPlusOutlet.tag
counter = counter + 1
// call the delegate
delegate?.updateLabelWithValueAtIndex(cellIndex!, newValue: counter)
}
@IBAction func btnMinus() {
cellIndex = btnPlusOutlet.tag
if counter >= 1 {
counter = counter - 1
}
else{ return }
// call the delegate
delegate?.updateLabelWithValueAtIndex(cellIndex!, newValue: counter)
}
}
class TypeOfTransportTableViewController: UITableViewController {
override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("BrandOfCarCell", forIndexPath: indexPath) as BrandOfCarTableViewCell
cell.delegate = self
cell.btnPlusOutlet.tag = indexPath.row
cell.labelQty.text = String(arrayBrandsOfTransport[indexPath.row].qty)
}
func updateLabelWithValueAtIndex(cellIndex:Int, newValue: Int){
// println("table view controller cell index: \(cellIndex)" )
// println("the newvalue is \(newValue)")
arrayBrandsOfTransport[cellIndex].qty = newValue
tableView.reloadData()
}
}
我刚刚更新了数组的值,我保留所有值并重新加载表!谢谢Kumar