下午好,
我正在尝试从我的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)
}
提前致谢,
问候。
答案 0 :(得分:2)
我遇到了同样的问题并且在那里停留了一段时间。最后我意识到,我不得不使用prepareForSegue,而是使用prepare函数。
override func prepare(for segue: UIStoryboardSegue, sender: Any?) {
if segue.identifier == "YourIdentifier" {
// stuff you want to do
}
}