Используя делегата и протокол, я не могу получить доступ к функции внутри UIButton - PullRequest
0 голосов
/ 26 мая 2018

Я хочу показать / скрыть представление коллекции внутри выбора кнопки проверки табличного представления

Я пытаюсь использовать делегат и протокол для этого.

1. Я создаю протокол в ячейке табличного представленияclass

   protocol CustomCellDelegate{
   func selectCollectionView(cell: InsideTableViewCell)
   }

Примечание: я создаю функцию selectCollectionView внутри контроллера основного вида

2.declare переменную-делегат внутри класса основного вида

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 function

func selectCollectionView(cell: InsideTableViewCell) {

    cell.clCollectionView.isHidden = true
}

Я пытаюсь вызвать функцию selectCollectionView внутри кнопки selectCheck

, но получаю сообщение об ошибке типа «Невозможно преобразовать значение типа« InsideTableViewCell.Type »в ожидаемый аргументвведите 'InsideTableViewCell' "

Если я ошибаюсь, пожалуйста, дайте мне знать.

Я ссылался на эту ссылку: Как получить доступ к содержимомуt пользовательской ячейки в swift с использованием тега кнопки?

и снимок экрана с выводом:

enter image description here

...