【发布时间】:2017-08-16 08:00:26
【问题描述】:
场景: 我有一个表格视图和一个自定义按钮单元格。在单元的控制器中,我做了一个委托来调用 MainController 的函数。 问题是我的单元格按钮操作正在触发,但删除功能没有。
CustomCell 控制器:
import UIKit
protocol CustChatButtonDelegate: class {
func chatActionClick(cell: CustButtonCell)
}
class CustButtonCell: UITableViewCell {
var delegete:CustChatButtonDelegate?
@IBOutlet weak var btnChat: UIButton!
override func prepareForReuse() {
super.prepareForReuse()
// self.delegete=nil
}
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 btnChatActionClick(_ sender: Any) {
print("btn click")
self.delegete?.chatActionClick(cell: self)
}
}
主控制器:
import UIKit
class ChatController: UIViewController ,UITableViewDelegate, UITableViewDataSource, ChatButtonDelegate,CustChatButtonDelegate {
func chatActionClick(cell: CustButtonCell) {
print("btnClicked")
}
}
【问题讨论】:
-
在您创建单元格的位置添加
cell.delegate = self -
你设置了CustButtonCell的delegate属性了吗?此外,您可能希望将委托声明为
weak,否则您将有一个引用循环。 -
你的代码中的
<myCustomsCellInstance>.delegate = self(或类似的东西)在哪里?或者换句话说,你在哪里为delegatevar 赋值? -
cell.delegate = self为我工作,非常感谢^_^。请将您的评论添加为单独的答案。
标签: ios swift uitableview custom-cell