首页 > 解决方案 > 使用委托和协议我无法访问 UIButton 内的功能

问题描述

我想在表格视图的检查按钮选择中显示/隐藏集合视图

我正在尝试为此使用委托和协议。

1.我在表格视图单元类中创建协议

   protocol CustomCellDelegate{
   func selectCollectionView(cell: InsideTableViewCell)
   }

注意:我在主视图控制器中创建了 selectCollectionView 函数

2.在主视图类中声明委托变量

var delegate: CustomCellDelegate?

3.确认到主类中的CustomCellDelegate

class ViewController: UIViewController,UITableViewDelegate,UITableViewDataSource,UICollectionViewDelegate,UICollectionViewDataSource,CustomCellDelegate

4.使用选择器函数在cellForRowAtIndexPath函数内部提供表格视图按钮

cell.checkButton.addTarget(self, action: #selector(self.selectCheck(_:)), for: .touchUpInside)
cell.delegate = self

5.选择器功能

 @objc func selectCheck(_ sender: UIButton) {

    if sender.isSelected {
        sender.isSelected = false
        print("Check 1")

    delegate?.selectCollectionView(cell: InsideTableViewCell)

    } else{
        print("Check 2")
        sender.isSelected = true

    }


}

6.selectCollectionView函数

func selectCollectionView(cell: InsideTableViewCell) {

    cell.clCollectionView.isHidden = true
}

我正在尝试在 selectCheck 按钮内调用 selectCollectionView 函数

但我收到类似“无法将'InsideTableViewCell.Type'类型的值转换为预期的参数类型'InsideTableViewCell'”的错误

如果我做错了,请告诉我。

我引用了这个链接:如何使用按钮标签快速访问自定义单元格的内容?

和输出截图:

在此处输入图像描述

标签: iosswiftuitableviewuicollectionviewswift-protocols

解决方案


推荐阅读