私はtableViewセル内にcollectionViewを持っています。私は、collectionViewセルをタップし、渡された情報でdetailTableViewに行きたいと思います。私は多くの作業をしていません。いくつかの研究を行い、tableViewセルにストーリーボードもnavigationControllerもないことを示しています。どのようにすれば、データをdetailTableViewに渡すことができますか。ここではあなたはそれがタップだとあなたは、その後、あなたがやりたいことができたときに、テーブルビューを通知しますあなたのコレクションビューセルのデリゲートを作成することができ、おそらく正しいValueType "tableViewCell"にはメンバーがありませんnavigationController
class PopularTableViewCell: UITableViewCell {
var books = [CKRecord]()
var detailViewController: DetailViewController!
}
extension PopularTableViewCell: UICollectionViewDataSource {
func collectionView(_ collectionView: UICollectionView, didSelectItemAt indexPath: IndexPath) {
let record = books[indexPath.row]
let storyBoard = UIStoryboard(name: "Home", bundle: nil)
if let detailVC = storyBoard.instantiateViewController(withIdentifier: "DetailVC") as? DetailViewController {
detailVC.bookRecord = record
detailViewController.navigationController?.pushViewController(detailVC, animated: true)
}
}
}
しかし 'didSelectItemAt indexPath'方法は、私のtableViewCell内にある:のようなデリゲートを接続することを忘れないでください。すべてが 'tableViewCell'で実装されています。私は 'displayHeaderView'を変更するtableViewControllerしか持っていません。 – user6574269
これは、tableViewControllerを通知するtableViewCellからの単一のカスタムデリゲートコールが必要です。 –
@ Alexander Kimまだセルからのプロパティへの参照を見つけることができません'didselectItem'メソッドでデリゲートメソッドを実装しましたが、これはセル内にあります。拡張機能 'TableviewCell:CustomDelegate'のように' func'を呼び出すことができます – user6574269