我在表格视图单元格(嵌套表格视图)内有表格视图单元格(OrderMasterCell
)
OrderMasterCell
已在多视图控制器中重用
假设ViewController1具有tableview,并且在tableview单元格(VC1Cell)中有一个具有单元格OrderMasterCell
的tableview(嵌套tableivew)
假设 ViewController2 具有 tableview,在 tableview 单元格 (VC2Cell) 中,有一个具有单元格OrderMasterCell
的 tableview(嵌套 tableivew)
我想要将OrderMasterCell
委托传递给VC1Cell
didSelectRow
的自定义委托
VC2Cell
使用该委托,我想将单元格 VC1 或 VC2 作为参数传递 为此,我创建了以下
@objc protocol OrderSubItemTableDelegate:class {
associatedtype cellType // cell type either vc1 or vc2
@objc optional func tableViewDidSelectRowAt(object:cellType)
}
当我尝试创建时
class VC1Cell: UITableViewCell,UITableViewDataSource,UITableViewDelegate {
weak var delegate:OrderSubItemTableDelegate?
}
它抛出编译时错误
协议"OrderSubItemTableDelegate"只能用作泛型约束,因为它具有 Self 或关联的类型要求
明确的问题
如何创建具有associatedtype
的协议的属性? 喜欢weak var delegate:OrderSubItemTableDelegate?
如果有人可以帮助我解决这个问题
您以错误的方式确认协议。
protocol OrderSubItemTableDelegate {
associatedtype cellType // cell type either vc1 or vc2
static func tableViewDidSelectRowAt(object: cellType)
}
class VCCell1: UITableViewCell ,OrderSubItemTableDelegate {
typealias cellType = VCCell1
static func tableViewDidSelectRowAt(object: VCCell1) {
}
}