在TableViewCell和TableViewController中为UIStepper委派错误

时间:2016-02-29 12:34:57

标签: ios swift uitableview delegates uistepper

我的代理人UIStepperTableViewCellTableViewController存在问题。我无法将委托命令传递给TableViewCell中的TableViewController

我的TableViewCell代码如下:

CampTableCell.swift

import UIKit

protocol ReviewCellDelegate{
    func stepperButton(stepper_value:Int)
}

class CampTableCell: UITableViewCell {

@IBOutlet var campqty: UILabel!
@IBOutlet var stepper: UIStepper!

var delegate:ReviewCellDelegate!

override func awakeFromNib() {
    super.awakeFromNib()
    // Initialization code
}

override func setSelected(selected: Bool, animated: Bool) {
    super.setSelected(selected, animated: animated)

    // Configure the view for the selected state
}

@IBAction func stepperValueChanged(sender: UIStepper) {

    self.delegate.stepperButton(Int(stepper.value))
    campqty.text = String(Int(stepper.value))
}

}

TableGenController.swift 的开头就是:

class TableGenController: UITableViewController, UISearchBarDelegate, ReviewCellDelegate {

我添加了这个功能(作为测试):

func stepperButton(stepper_value:Int) {
    print("Value Changed!")
}

接下来,我相信,我必须在viewDidLoad:

下添加它
CampTableCell.delegate = self

但是,这会导致错误说明:

Instance member 'delegate' cannot be used on type 'CampTableCell'

我可能在做一些概念上错误的事情,但是很难找到这个特定设置的资源。非常感谢对此的一些帮助,谢谢!

1 个答案:

答案 0 :(得分:0)

我不熟练代表,但您是否尝试删除错误的行?我不确定你是否需要它。

此外,我认为您可以删除

中的self
self.delegate.stepperButton(Int(stepper.value))