代表与斯威夫特

时间:2018-04-26 15:09:26

标签: ios swift delegates

目前我有一个带有TableView的ViewController和一个包含后退按钮的自定义Header。我想要的是从头类中说ViewController必须回到之前的ViewController。我面临的问题是我遵守协议并且接收到按钮的动作但是调试器没有进入解除功能。这是代码:

    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"没有打印

1 个答案:

答案 0 :(得分:0)

创建标题视图时,将其委托设置为self。

headerView.delegate = self

您应该在headerView

中初始化StoresFilterViewController后添加此内容