2016-08-01 1 views
1

グッド午後に呼び出されることはありません。これは私のTableViewのために働いていますが、私のCollectionViewのためではありません。prepareForSegueは、私は私のCollectionViewからセグエを実行しようとしているが、細胞に触れるときprepareForSegueがトリガされることはありません</p> <p>、UICollectionView

私のコードで分かるように、私は同じViewControllerで両方を持っていますが、なぜそれがTableViewだけで動作しているのかわかりません。 「segueCollection」は決してトリガーされません。

これを行うには何が必要ですか?私もTableViewセグを使用しているので、いくつかの問題がありますか?私はここで少し失われています。私もこのコードの中しようとしている(それはまた、何を示していない)

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    if segue.identifier == "showMovieFromTable", let destination = segue.destinationViewController as? MovieViewController, index = tableView.indexPathForSelectedRow?.row { 
     destination.year = searchMovies[index].year 
    } else if segue.identifier == "showMovieFromCollection" { 
     print("segueCollection") 
    } 
    print("segueTriggered") 
} 

:事前に

func collectionView(collectionView: UICollectionView, didSelectItemAtIndexPath indexPath: NSIndexPath) { 
    print(indexPath) 
    self.performSegueWithIdentifier("showMovieFromCollection", sender: self) 
} 

おかげで、

よろしく

は、ここに私のコードです。

+1

「この作業を行うにはどうすればよいですか?」はい、私たちに知らせてください。あなたはコレクション –

+0

にSegueをどのように付けていますか?@Lu_、私はCollectionViewCell内のCellからStoryboardのMovieViewControllerに「選択」オプションを接続しました。 –

+0

あなたはどこでそれを( 'performSegue :())'と呼んでいますか?どのように設定しましたか?たとえば、セグをセルから次のVCに直接移動し、現在のVCを次のVCに移動させない場合、セグは呼び出されません。 – Larme

答えて

1

私は同じ問題を抱えていて、ちょっとした間そこにこだわってきました。最後に、prepareForSegueを使用する代わりに、prepare関数を使用する必要があります。

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    if segue.identifier == "YourIdentifier" { 
     // stuff you want to do 
    } 
} 
関連する問題