所以我试图把我的代表分成一个单独的类,而不是把它放在我的单元类中。这是我如何声明和初始化委托:
class RegistrationTableViewController: BaseTableViewController, UITextFieldDelegate {
var textFieldDelegate: UITextFieldDelegate
//MARK: - Initialization
required init?(coder aDecoder: NSCoder) {
textFieldDelegate = RegistrationTextFieldDelegate()
super.init(coder: aDecoder)
}
然后我在我的常规单元格设置方法中设置它:
func setupBaseCellWithType(type: Constants.Registration.CellType) -> BaseCell {
var cell: BaseCell? = nil
if let newCell = tableView.dequeueReusableCellWithIdentifier(Constants.Registration.profileBaseRegistrationCell) as? BaseProfileCell {
newCell.cellType = type
newCell.setupCell()
newCell.setTextFieldDelegate(textFieldDelegate)
cell = newCell
}
return cell!
}
问题是,它永远不会遇到任何委托方法。当我把细胞变成我的代表时,它工作得很好,任何想法在这里出错了吗?
修改:setTextFieldDelegate
调用此方法:
private func setTextFieldDelegates(delegate: UITextFieldDelegate) -> Void {
for textField in textFieldArray {
textField.delegate = delegate
}
}
这就是我之前在单元格中的所有textFields上设置委托的方式,所以我知道它正确地将它们设置在那里,但是在我试图将它移动到另一个类时出现了问题。
编辑2:我是一个低睡眠的白痴。我只是改变了BaseCell代表,而不是我的PhoneNumberCellDelegate ......如果你愿意,可以随意称我为白痴。