         self.collectionView.tag = index
         self.collectionView.reloadData()
     }
+    
+    func setCollectionViewDataSourceDelegate(dataSourceDelegate delegate: protocol<UICollectionViewDelegate,UICollectionViewDataSource>, indexPath: NSIndexPath) {
+        self.collectionView.dataSource = delegate
+        self.collectionView.delegate = delegate
+        self.collectionView.indexPath = indexPath
+        self.collectionView.tag = indexPath.section
+        self.collectionView.reloadData()
+    }
 }

        layout.minimumLineSpacing = 5
        layout.itemSize = CGSizeMake(91, 91)
        layout.scrollDirection = UICollectionViewScrollDirection.Horizontal
        self.collectionView = UICollectionView(frame: CGRectZero, collectionViewLayout: layout)
        self.collectionView.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: collectionViewCellIdentifier)
        self.collectionView.backgroundColor = UIColor.lightGrayColor()
        self.collectionView.showsHorizontalScrollIndicator = false

//

import UIKit

class DHIndexedCollectionView: UICollectionView {
    
    var indexPath: NSIndexPath!
    
    override init(frame: CGRect, collectionViewLayout layout: UICollectionViewLayout) {
        super.init(frame: frame, collectionViewLayout: layout)
    }
    
    required init(coder aDecoder: NSCoder) {
        super.init(coder: aDecoder)
    }
}

let collectionViewCellIdentifier: NSString = "CollectionViewCell"
class DHCollectionTableViewCell: UITableViewCell {

    var collectionView: DHIndexedCollectionView!

    override init(style: UITableViewCellStyle, reuseIdentifier: String?) {
        super.init(style: style, reuseIdentifier: reuseIdentifier)
