layout.headerReferenceSize を設定すると、次のようになります
Assertion failure in -[HLEventCollectionView _createPreparedSupplementaryViewForElementOfKind:atIndexPath:withLayoutAttributes:],
クラッシュは、dataSource が設定される前でも発生します。collectionView は、フレームが viewControllers の境界に設定されています。flowLayout には、headerReferenceSize 以外のプロパティは設定されていません。
コードサンプル:
- (void)viewDidAppear:(BOOL)animated {
[super viewDidAppear:animated];
UICollectionViewFlowLayout *flowLayout = [[UICollectionViewFlowLayout alloc] init];
flowLayout.headerReferenceSize = CGSizeMake(0.0f, 30.0f);
UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:self.view.bounds collectionViewLayout:flowLayout];
[self.view addSubview:collectionView];
}
dataSource を設定するかどうかに関係なく発生します。