在UICollectionView中永远不会调用prepareForSegue

时间:2016-08-01 12:41:10

标签: ios swift swift2 uicollectionview segue

下午好,

我正在尝试从我的CollectionView执行segue,但触摸Cell时从不触发prepareForSegue。这适用于我的TableView,但它不适用于我的CollectionView。

正如您在我的代码中看到的,我在同一个ViewController中都有,但我不知道为什么它只适用于TableView。永远不会触发“segueCollection”。

为了使这项工作,我必须做些什么?有一些类型的问题,因为我也使用TableView segue?我在这里有点失落。

这是我的代码:

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 :(得分:2)

我遇到了同样的问题并且在那里停留了一段时间。最后我意识到,我不得不使用prepareForSegue,而是使用prepare函数。

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