我有一个名为CustomTableCell的UITableViewCell子类,该子类在swift 4.1中声明。文件。
在我具有cellTableRowAt中的UITableView的视图控制器中:
let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier") as! CustomTableCell
cell.delegate = self
我收到以下错误:
Value of type 'CustomTableCell' has no member delegate.
我在顶部声明了UITableViewDelegate。
答案 0 :(得分:2)
UITableViewDelegate不需要(3,3,200,128)
。
如果CustomTableCell有cell.delegate = self
,则只需分配即可。因此,如果您的Custom Delegate
没有蚂蚁Custom Delegate
,请删除该行。
对于tableView委托方法,您必须在viewDidLoad()中添加它:
CustomTableCell
或仅使用yourTableView.delegate = self
yourTableView.dataSource = self
进行连接。
答案:您如何在CustomTableCell类中创建单元委托?只是好奇
CustomTableCell.swift:
StoryBorad
然后在// Custom protocol
protocol CustomCellDelegate: NSObjectProtocol {
// Protocol method
func someFunctionToPassSomeValue(name: String)
}
class CustomTableCell: UITableVieCell {
weak var delegate: CustomCellDelegate?
// Your class implementations and outlets..
//Call your protocol method in some action, for example in button action
@IBAction func buttonAction(sender: UIButton) {
delegate?.someFunctionToPassSomeValue(name: "anyStringValue")
}
}
类中,您需要将实例分配给自定义委托变量。
ViewController
并实现协议方法:
let cell = tableView.dequeueReusableCell(withIdentifier: "reuseIdentifier") as! CustomTableCell
cell.delegate = self