UICollectionView没有将其数据显示为在另一个UIViewController中加载

时间:2014-07-13 16:04:12

标签: ios uiviewcontroller swift uicollectionview

我有两个UIViewController。一个是 ViewController ,另一个是 GameplayViewController

ViewController将执行

let gameplayViewCtrl = GameplayViewController() self.presentViewController(gameplayViewCtrl, animated: true, completion: nil)

viewDidAppear()函数中的

。所以它显示然后加载另一个UIViewController

GameplayViewController有UICollectionView作为其成员。它扩展/符合UIViewController, UICollectionViewDelegate, UICollectionViewDataSource。我已经在storyboard中正确地将委托,数据源和UICollectionView变量链接为@IBOutlet。

通过以上设置,我测试了它。它显示白色屏幕一秒钟,然后显示黑屏。 GameplayViewController中UICollectionView中的单元格永远不会被加载(通过断点检查代码中没有调用)。但是,如果我将入口点(故事板中的箭头)更改为指向GameplayViewController,则它会正确加载并显示单元格中的所有数据。事情很好。

这里有什么问题?我想这是关于永远不会被非默认的UIViewController捕获的事件链。

仅供参考:我在xcode 6 beta 3中这样做

更新

我做了更多的研究,发现至少有两种可能的方法可以做到这一点。一个是我的方法,另一个是使用segue。

Segue有效,你可以找到如何做到How do I use performSegueWithIdentifier: sender:?。我测试了它。

我还测试过从GameplayViewController切换到ViewController(与原始测试相反)。它显示类似于第一次测试的黑屏。但它应该显示白色屏幕ViewController,它有白色背景颜色。这让我觉得内心有些错误。

目前,我使用segue方法。但我仍然想知道为什么self.presentViewController()不会为我们做这个工作,它会显示黑屏,没有任何调用或发生。

0 个答案:

没有答案