изменить контроллер представления из didSelectItemAt пользовательский CollectionViewCell внутри пользовательского TableViewCell - PullRequest
0 голосов
/ 15 ноября 2018

У меня есть представление коллекции внутри ячейки табличного представления, поэтому я хочу выбрать ячейку представления коллекции, и она переходит к другому контроллеру представления. Так как мне это сделать?

Я попробовал сам, он либо ничего не делает, "Приложение пыталось представить модально активный контроллер", либо "Попытка представить .. на .., чье представление не находится в иерархии окон".

1 Ответ

0 голосов
/ 15 ноября 2018

Добавьте delegate в класс ячейки (вне класса ячейки) и объявите переменную внутри класса:

protocol CellSelectedDelegate { //Name them as you want
    func cellSelected()
}
class TableCell: UITableViewCell {
    var delegate: CellSelectedDelegate?
}

Затем в ячейке didSelectItem:

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
   delegate?.cellSelected()
}

Теперь перейдите к классу контроллера , где у вас есть методы tableView datasource и delegate (при условии, что они находятся в классе контроллера, а не в другом представлении), и добавьте это в cellForItem method:

cell.delegate = self

И последняя часть, реализовать метод custom delegate в классе контроллера:

extension YourController: CellSelectedDelegate {
    func cellSelected() {
       //Present next controller here
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...