这是我的协议定义。
protocol ActivityIndicatorDelegate: class {
func showIndicator()
func hideIndicator()
func barcodeError()
func categoryError()
func descError()
func reasonError()
func costError()
}
然后在我的自定义单元格类中,我创建弱引用,并调用委托函数
class ProductTableViewCell: UITableViewCell {
weak var indicatorDelegate: ActivityIndicatorDelegate?
@IBAction func stockUpdate(_ sender: Any) {
indicatorDelegate?.categoryError()
}
}
然后在我的UITableViewController类
中class ProductTableViewController:
UITableViewController,ActivityIndicatorDelegate{
override func viewDidLoad() {
super.viewDidLoad()
let cellDelegate = ProductTableViewCell()
cellDelegate.indicatorDelegate = self
}
func categoryError() {
//self.showAlert(alertTitle: "Error!", alertMessage: "Category Should not be empty")
print("Error")
}
}
我已将所有这些内容写在一个文件中。我在这里做错了什么?有人可以帮我解决这个问题。提前谢谢。
答案 0 :(得分:1)
您不应在viewDidLoad
中设置委托。这只会设置您刚刚创建的单元格的委托,而不是表格视图中的所有单元格。
您应该在celForRowAtIndexPath
:
let cell = tableView.dequeue...
// configure the cell...
cell.indicatorDelegate = self