首页 > 解决方案 > 按钮 ibaction 没有在 tableview 中被调用

问题描述

所以我设置了一个协议,以便我可以使用我的 tableviewcontroller 中的按钮,但它不起作用。我知道我正确设置了协议(因为当我尝试它时会调用打印语句),但是在 tableviewcontroller 中没有调用该函数。这是一些代码:

protocol CommentCellDelegate
{
    func reply(index: Int)
}

class CommentCell: UITableViewCell
{
    var delegate: CommentCellDelegate?
    var index: IndexPath?
    
    //Other outlets omitted for brevity
    @IBOutlet var replyButton: UIButton!
    
    override func awakeFromNib()
    {
        super.awakeFromNib()
        // Initialization code
    }

    @IBAction func reply(_ sender: Any)
    {
        delegate?.reply(index: index!.row)
    }
}
extension commentsTableViewController: CommentCellDelegate
{
    func reply(index: Int)
    {
        print("button tpapped")
        let comment = comments[index]
        globalComment = comment
        print(globalComment.comment!)
        self.performSegue(withIdentifier: "commentVC", sender: self)
    }
}

标签: iosswiftuitableviewdelegatesswift-protocols

解决方案


在里面cellForRowAt确保设置委托

let cell = ........
cell.delegate = self

推荐阅读