目前我有一个ViewController,它有一个TableView和一个包含back按钮的自定义头。我想从header类中说的是,ViewController必须返回到上一个ViewController。我面临的问题是,我正在调整协议,按钮的动作被接收到,但是调试器没有转到dispose函数。代码如下:

    protocol StoresFilterHeaderViewDelegate: class {
        func onBackButtonTap();
    }
    class StoresFilterHeaderView: UICollectionReusableView {

        weak var delegate: StoresFilterHeaderViewDelegate?;
        @IBOutlet weak var lbSubcategory: UILabel!
        @IBOutlet weak var ivSubcategory: UIImageView!

        // MARK: Actions

          @IBAction func onBackToMomentDetailButtonTap(_ sender: AnyObject) {
                self.delegate?.onBackButtonTap();
                print("button pressed");
      }
    }

“按钮按下”印刷良好
class StoresFilterViewController: UIViewController, UITableViewDataSource, UITableViewDelegate, StoresFilterHeaderViewDelegate {

    func onBackButtonTap() {
        print("segueback")
    }

“segueback”未打印

最佳答案

创建headerview时,将其委托设置为self。

headerView.delegate = self

您应该在初始化headerView后在StoresFilterViewController中添加此项

10-07 19:56