无法在集合视图方法中使用performSegue

时间:2019-10-23 01:52:37

标签: swift

因此,我创建了一个表视图,并在表视图单元格的内部,添加了集合视图。但这是问题所在,我无法在名为pathos.threading.ThreadPoolpool.imap(boo2, [feature for feature in fileReader]) 的Collection视图方法中调用performSegue。

这是我的github存储库:https://github.com/realpaliy/Movie-Manager

我试图这样做,但是没有用。 Perform Segue from Collection View Cell

[feature for feature in fileReader]

当我单击一个单元格对另一个VC无效时,我无法调用performSegue。

1 个答案:

答案 0 :(得分:0)

performSegue函数是UIViewController的成员。如果我正确理解了您的问题,则尝试在 collectionView ... didSelectItem 函数中调用它。

问题在于您是在 PopularMoviesTableViewCell 的扩展名中执行此操作的,该扩展名只是 UIView ,而不是 UIViewController ,因此没有具有 performSegue 功能。

有很多方法可以解决此问题。您可能希望在创建委托时将委托传递给每个单元。遵循以下原则:

tf.contrib.cudnn_rnn.CudnnRNNTanh

并在您的单元格内:

protocol MovieSelectionDelegate {
  func didSelect(movie: Movie)
}

如果每个单元格都包含对该委托实例的引用,则可以从 collectionView ... didSelectItem 内调用此函数:

var delegate: MovieSelectionDelegate? = nil

然后,如果您使顶级ViewController符合 MovieSelectionDelegate 并实现 func didSelect(movie:),则可以在其中调用 performSegue 在那里。

self.delegate?.didSelect(movie: movies[indexPath.row])

最后但并非最不重要的一点是,在使单元出队时,请执行以下操作:

extension SearchVC: MovieSelectionDelegate {
   func didSelect(movie: Movie) {
      performSegue <...>
   }
}

这应该将所有东西连接起来。