2017-03-02 35 views
2

我有一個cellView的collectionView,然後再次在這個單元格中的一個collectionView。這個小孩collectionView又一次有一個單元格。現在我想與父級collectionView中的子級collectionView中的單元通信。在故事板中如何在swift 3中做到這一點?如圖所示,圖像中的附我想從第一的CollectionView傳達給無線電小區故事板中的嵌套CollectionView

enter image description here

+0

您可以在您的父類中創建自定義委託/協議方法,該類可以用於通信。 –

回答

0
  1. 在你的主ViewController.swift符合它的協議UICollectionViewDataSource,UICollectionViewDelegate。
  2. 現在從你的故事板獲取你的父級CollectionView到你的ViewController.swift的出口。
  3. 然後創建一個Cocoa Touch類,它是UICollectionViewCell的子類,用於定製UICollectionView的單元格,並在此類中取出您的子級CollectionView的出口。
  4. 現在轉到故事板並選擇您的父級CollectionView單元格,並將其類設置爲您的自定義單元格類,然後在「屬性」檢查器中爲此單元格設置標識符。
  5. 現在再次爲您的子UICollectionview單元格創建類,並執行與父UICollectionview相同的操作。
  6. 現在一切都安裝在您的故事板中。在此之後,您應該在UICollectionView的委託方法中爲您的過程編寫代碼。
  7. 現在在您的ViewController.swift文件中編寫UICollectionView的委託方法。

    FUNC的CollectionView(_的CollectionView:UICollectionView,cellForItemAt indexPath:IndexPath) - > UICollectionViewCell { 讓細胞= parentCollectionViewOutlt.dequeueReusableCell(withReuseIdentifier: 「parentcell」,爲:indexPath)作爲! ParentCollectionViewCell cell.childCollectionView.reloadData() 恢復單元 }

  8. 現在,在你父母的CollectionView細胞類文件: 此外,它符合協議UICollectionViewDataSource,UICollectionViewDelegate和寫入UICollectionView所有的委託方法,然後編寫如下代碼爲:

    倍率FUNC awakeFromNib(){ super.awakeFromNib() childCollectionView.delegate =自 childCollectionView.dataSource =自 childCollectionView.reloadData() }

  9. 現在在cellForItemAt()方法中,通過指定其子標識符來獲取子級CollectionView的單元格,然後在其中執行代碼並返回您的單元格。在這裏你可以做任何你想要在你的子類CollectionView的單元格中做的事情,這意味着你可以在這個類中獲得你的子類CollectionView的單元格,以獲得你父類CollectionView的自定義單元格。

+0

如果您使用[格式化](https://stackoverflow.com/editing-help#comment-formatting),您的文章將更容易閱讀。 – milo526