将数据从一个集合视图传递到嵌入式集合视图
Passing Data From One Collection View to an Embedded Collection View
我有一个 mainUICollectionView
和一个自定义 mainUICollectionViewCell
。在这个 mainUICollectionViewCell
中有一个 nestedUICollectionView
和一个 nestedUILabel
和一个 nestedUICollectionViewCell
.
我试图加载的数据是一个名为 questions = [Question]()
的变量,其中 Question
是自定义 class。每个 Question
对象都有一个 title
和一个 [string]()
。
这是我要实现的逻辑:
1.mainCollectionView
应该根据questions.count
填充
2. nestedLabel.text = question[indexPath.row].tite
3. nestedCollectionView
应根据相应 question
.
的 answer
属性 进行填充
我通过参考 viewControllers
questions
属性 轻松完成了前两个任务。但是,由于我的 nestedCollectionView
的 UICollectionViewDelegate
和 UICollectionViewDataSource
在 mainUICollectionViewCell
中,我无法获得它的参考。我怎样才能实现这第三步?
谢谢
你可以试试
class ViewController : UIViewController {
func collectionView(_ collectionView: UICollectionView,
cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
// pass data only ,this in the viewController
let answers = questions[indexPath.row].answers
cell.answers = answers
//
}
}
&
class mainUICollectionViewCell: UICollectionViewCell , UICollectionViewDelegate , UICollectionViewDataSource {
var answers = [String]()
override func awakeFromNib () {
super.awakeFromNib()
self.nestedCollectionView.delegate = self
self.nestedCollectionView.dataSource= self
// register the nib / nestedUICollectionViewCell here
}
}
//
里面 cellForRow
在 ASKpScoreLog
之前 return cell
做
cell.collectionView.reloadData()
我有一个 mainUICollectionView
和一个自定义 mainUICollectionViewCell
。在这个 mainUICollectionViewCell
中有一个 nestedUICollectionView
和一个 nestedUILabel
和一个 nestedUICollectionViewCell
.
我试图加载的数据是一个名为 questions = [Question]()
的变量,其中 Question
是自定义 class。每个 Question
对象都有一个 title
和一个 [string]()
。
这是我要实现的逻辑:
1.mainCollectionView
应该根据questions.count
填充
2. nestedLabel.text = question[indexPath.row].tite
3. nestedCollectionView
应根据相应 question
.
answer
属性 进行填充
我通过参考 viewControllers
questions
属性 轻松完成了前两个任务。但是,由于我的 nestedCollectionView
的 UICollectionViewDelegate
和 UICollectionViewDataSource
在 mainUICollectionViewCell
中,我无法获得它的参考。我怎样才能实现这第三步?
谢谢
你可以试试
class ViewController : UIViewController {
func collectionView(_ collectionView: UICollectionView,
cellForItemAt indexPath: IndexPath) -> UICollectionViewCell {
// pass data only ,this in the viewController
let answers = questions[indexPath.row].answers
cell.answers = answers
//
}
}
&
class mainUICollectionViewCell: UICollectionViewCell , UICollectionViewDelegate , UICollectionViewDataSource {
var answers = [String]()
override func awakeFromNib () {
super.awakeFromNib()
self.nestedCollectionView.delegate = self
self.nestedCollectionView.dataSource= self
// register the nib / nestedUICollectionViewCell here
}
}
//
里面 cellForRow
在 ASKpScoreLog
之前 return cell
做
cell.collectionView.reloadData()