シナリオ: を私はテーブルビューとカスタムボタン電池を持っています。セルのコントローラでは、代理人がMainControllerの関数を呼び出すようにしました。 問題は私のセルのボタンアクションが発砲していますが、削除機能はありません。委任機能は、焼成・スウィフトされていない4
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のデリゲートプロパティを設定している –
セルを作成する場所を追加しますか?また、参照サイクルを持つため、デリゲートを 'weak'として宣言することもできます。 – Palle
あなたのコードの中のあなたの ' .delegate = self'(またはそれに類するもの)はどこですか?言い換えれば、あなたは 'delegate' varにどこに値を割り当てましたか? –
holex