2017-02-06 6 views
1

У меня есть представление коллекции, в котором каждая ячейка имеет жест нажатия, при нажатии, я хочу запустить другой ViewController, как если бы я делал это при использовании навигационной панели (ViewController имеет кнопку X который должен появиться). Обычно я использую self.navigationController ?.present для этой цели, но в этом случае, поскольку это UICollectionViewCell, я не могу использовать текущую функцию. Я попытался это, но он не работает:Swift: Нажатие контроллера View на UICollectionViewCell

func handleTap(){ 
     let storyboard = UIStoryboard(name: "Main", bundle: nil) 
     let controller = storyboard.instantiateViewController(withIdentifier: "driver") 
     self.window?.rootViewController?.presentedViewController?.addChildViewController(controller) 
    } 

По какой-то причине весь ноль в опциях. Это даже логичный подход? что было бы хорошим решением этой проблемы?

+2

Почему не используется 'метод didSelectItemAtindexPath' из' UICollectionViewdelegate'. –

+0

Это то, что я не знаю, проверит! – Sharonica

+0

Рекомендации @NiravD верны и наилучшим образом. Используйте этот метод, а затем вы можете представить свой VC просто как self.present ... – Mannopson

ответ

2

использование этот способ для осуществления push segue.

func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) { 
    // handle tap events 
    print("You selected cell #\(indexPath.item)!") 

} 

Вы также можете использовать раскадровку для выполнения действия

 Смежные вопросы

  • Нет связанных вопросов^_^