Вы можете делать то, что вы ищете, используя быстрые протоколы. Читать дальше ЗДЕСЬ
Сначала вам нужно знать, что performSegue()
работает на UIViewController
Вынеобходимо создать протокол для вашего collectionViewCell
, я думаю, что здесь MyGamesController
выглядит так:
protocol MyGamesControllerDelegate {
func insidCellDidSelect()
}
И добавьте его экземпляр в ваш класс:
var delegate : MyGamesControllerDelegate?
Теперькогда вы звоните delegate?.insidCellDidSelect
в didSelectItemAt
вашего MyGamesController
, вы можете запустить его в своем родительском VC, выполнив следующие шаги:
Когда вы создаете экземпляр MyGamesController
, то есть в cellForItemAt
прикрепите делегат ячеек к родительскому элементу ViewController
, который создает его следующим образом:
class TheVCYouWantToPerformSegue : MyGamesControllerDelegate {
...
func collectionView(_ collectionView: UICollectionView, cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
let cell = ... as! MyGamesController
cell.delegate = self
Затем вы можете внедрить метод протоколов в теле VC и получить уведомление:
func insidCellDidSelect() {
//Perform Segue goes here
}