Swift: UICollectionViewController не отображает ячейки

Никакой другой вопрос по этой теме не сработал для меня, поэтому здесь идет это.

Никаких ячеек, несмотря на это, я программно представляю UICollectionViewController из UIViewController который находится в раскадровке

Примечание: @IBAction – это просто действие кнопки

Это UIViewController :

 @IBAction func segue(sender: AnyObject) { let collectionview = CollectionViewController(collectionViewLayout: UICollectionViewLayout()) self.presentViewController(collectionview, animated: true, completion: nil) } 

Тогда это UICollectionViewController :

 import UIKit private let reuseIdentifier = "Cell" class CollectionViewController: UICollectionViewController, UICollectionViewDelegateFlowLayout { override func viewDidLoad() { super.viewDidLoad() collectionView?.backgroundColor = UIColor.brownColor() self.collectionView!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier) } // MARK: UICollectionViewDataSource override func numberOfSectionsInCollectionView(collectionView: UICollectionView) -> Int { return 1 } override func collectionView(collectionView: UICollectionView, numberOfItemsInSection section: Int) -> Int { return 10 } override func collectionView(collectionView: UICollectionView, cellForItemAtIndexPath indexPath: NSIndexPath) -> UICollectionViewCell { let cell = collectionView.dequeueReusableCellWithReuseIdentifier(reuseIdentifier, forIndexPath: indexPath) cell.backgroundColor = UIColor.blueColor() return cell } } 

Я должен упустить что-то очевидное. Заранее благодарим человека, который указывает на меня.

Я понял проблему, немного глупо. При представлении нового UICollectionViewController я инициализировал его неправильно. Я использовал UICollectionViewLayout когда мне нужно было использовать UICollectionViewFlowLayout

 @IBAction func segue(sender: AnyObject) { let collectionview = CollectionViewController(collectionViewLayout: UICollectionViewFlowLayout()) self.presentViewController(collectionview, animated: true, completion: nil) } 

Поэтому я взял удар и получил это для работы:

В вашем методе viewDidLoad () попробуйте следующее:

  let screenSize = UIScreen.mainScreen().bounds let screenWidth = screenSize.width - 25 let layout: UICollectionViewFlowLayout = UICollectionViewFlowLayout() layout.sectionInset = UIEdgeInsets(top: 5, left: 5, bottom: 5, right: 5) layout.itemSize = CGSize(width: screenWidth/4, height: screenWidth/4) layout.minimumInteritemSpacing = 5 layout.minimumLineSpacing = 5 self.collectionView = UICollectionView(frame: CGRectMake(0, 0, self.view.frame.width, self.view.frame.height), collectionViewLayout: layout) self.collectionView?.backgroundColor = UIColor.brownColor() self.collectionView!.registerClass(UICollectionViewCell.self, forCellWithReuseIdentifier: reuseIdentifier) 

Я предполагаю, что проблема заключалась в том, чтобы не указывать UICollectionViewFlowLayout для ячеек. Это добавляет 5px интервал между каждой ячейкой, но вы можете изменить это, если хотите. Надеюсь это поможет!