Вам необходимо написать протокол для обращения к вашему HomeController.
protocol HomeCellProtocol {
func pushNavigation(_ vc: UIViewController)
}
добавить свойство записи делегата в класс HomeCell с помощью
class HomeCell: ..... {
var delegate: HomeCellProtocol?
}
и заставить HomeController подтвердить HomeCellProtocol с помощью
extention HomeController: HomeCellProtocol {
func pushNavigation(_ vc: UIViewController) {
self.navigationController?.pushViewController(vc, animated: true)
}
}
и когда вы настраиваете HomeCell, вам нужно настроить делегата в HomeController
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
cell = collectionView.dequeueReusableCell(withReuseIdentifier: homeCellId, for: indexPath) as HomeCell;
cell.delegate = self // Set the delegate
return cell
}
наконец, вы можете вызвать функцию push в HomeCell с помощью
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
if indexPath.item == 2 {
let vc = UIViewController();
self.delegate?.pushNavigation(vc);
}
}