2017-02-06 8 views
1

私は、ナビゲーションバーを使用するときと同じように、別のViewControllerを起動したいときに、タップしたときに各セルにタップジェスチャーがあるコレクションビューを持っています(ViewControllerにはXボタンそれはそれをポップすることになっています)。 私は通常この目的のためにself.navigationController?.presentを使いますが、この場合はUICollectionViewCellなので、私はpresent関数を使うことはできません。 は、私はこれを試してみましたが、それはうまくいきませんでした:Swift:UICollectionViewCellでView Controllerを押す

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

を何らかの理由でそれがoptionals内のすべてのnilです。 これは論理的なアプローチですか?この問題の良い解決策は何でしょうか?

+2

を実行するためにストーリーボードを使用することができます。 –

+0

これは私が知らないものです、それをチェックします! – Sharonica

+0

@NiravDの推奨事項は正しい方法です。このメソッドを使用すると、VCをself.presentとして表示できます。 – Mannopson

答えて

2

このメソッドを使用してプッシュセグを実装します。

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

} 

また、 `` UICollectionViewdelegate`のdidSelectItemAtindexPath`メソッドを使用していないのはなぜアクション

関連する問題