     public var dataSource: GridViewLayoutDataSource!
 
 
-    @IBOutlet weak var layout: GridViewLayout!
+    //@IBOutlet weak var layout: GridViewLayout!
 
+    weak var layout: GridViewLayout!
 
     public override func viewDidLoad() {
         super.viewDidLoad()

import UIKit

//Section = row, item = column
public class ContentGridViewCell: UICollectionViewCell {
    @IBOutlet public weak var contentLabel: UILabel!

    override public func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }

}

public class TitleGridViewCell: UICollectionViewCell {
    @IBOutlet public weak var contentLabel: UITextField!

    override public func awakeFromNib() {
        super.awakeFromNib()
        // Initialization code
    }
}



public class GridViewController: UICollectionViewController {


        switch (row, column) {
        case (0..<dataSource.numberOfColumnTitles(), 0..<dataSource.numberOfRowTitles()):
            return dataSource.cornerCellForIndexPath(indexPath, cornerColumnIndex: column, cornerRowIndex: row)

        case (_, 0..<dataSource.numberOfRowTitles()):
            return dataSource.rowTitleCellForIndexPath(indexPath, rowtitleCellIndex: column, rowIndex: row - dataSource.numberOfColumnTitles())

        case (0..<dataSource.numberOfColumnTitles(), _):
            return dataSource.columnTitleCellForIndexPath(indexPath, columnTitleCellIndex: row, columnIndex: column - dataSource.numberOfRowTitles())

        default:
            return dataSource.contentCellForIndexPath(indexPath, columnIndex: column - dataSource.numberOfRowTitles(), rowIndex: row - dataSource.numberOfColumnTitles())

        }
    }
