Привет, ребята, как дела? Надеюсь, вы, ребята, в порядке.Установить cellDelegate с использованием общих
Мне нужна небольшая помощь, и я благодарю вас заранее.
У меня есть пользовательский делегат в моей пользовательской ячейке, например:
protocol customTableViewCellDelegate: NSObjectProtocol {
func buttonPressed(customCell: customTableViewCell)
}
и у меня есть расширение, чтобы создать ячейку в виде таблицы, как это:
extension UITableView {
func layoutTemplateCell<T: UIViewController>(indexPath: IndexPath, viewController: T.Type) -> UITableViewCell {
let cell = UITableViewCell()
switch template {
case customCell:
let cell = self.dequeueReusableCell(withIdentifier: customTableViewCell.identifier) as! customTableViewCell
cell.delegate = viewController.self
return cell
default:
break
}
return cell
}
}
, но я «Получение ошибки в cell.delegate» не может назначить значение типа T.type для ввода customTableViewCellDelegate? »
Я не знаю, как правильно использовать родовое изображение, и я не знаю, как исправить эту ошибку.
Надеюсь, вы, ребята, можете мне помочь. Спасибо, что прочитали это и отлично провели день.
Привет, я использую общие элементы, потому что я хочу использовать больше одного viewController для расширения. Представьте, что все viewController, которые имеют tableView, будут использовать одно и то же расширение. –
По-прежнему не нужно использовать дженерики. Функция макета не волнует; все, что нужно знать, - это то, что соответствует протоколу – Paulw11
привет Paul, он работает только потому, что вы используете один viewController, как этот func layoutTemplateCell (indexPath: IndexPath, viewController: CustomTableViewCellDelegate) -> UITableViewCell , но я хочу использовать с несколькими viewController, поэтому я должен сделать что-то вроде этого func layoutTemplateCell (indexPath: IndexPath, viewController: UIViewController) -> UITableViewCell и когда у меня есть такая же ошибка –