如何在故事板中使用UICollectionViewController,同时仍支持ios 5.1?

时间:2012-11-01 11:52:35

标签: ios uicollectionview

最佳做法是检测某个功能的类是否存在,并根据可用性降低用户的功能。我在故事板中创建了UICollectionView,并在标准tableview中创建了ios 5.1用户。然后我只是检查用户是否具有此功能并转到相应的场景。但是,当我现在尝试编译我的代码时,我得到一个“dyld:未找到符号:_UICollectionElementKindSectionHeader”这似乎是非常反模式的苹果不允许ios6.0功能在故事板中具有ios 5.1部署目标。

if ([UICollectionView class]) {
    [self performSegueWithIdentifier:@"UserShow" sender:self];
} else {
    [self performSegueWithIdentifier:@"UserShowTable" sender:self];
}

以上对我来说似乎是一种非常合理的方法......

3 个答案:

答案 0 :(得分:3)

我知道仅提供链接答案是不恰当的,但她不可能包含整个文件。

请参阅this

控制器旨在提供与iOS 6的UICollectionController相同的功能,但仍然支持iOS 4/5

开发人员在说什么

  

PSTCollectionView
开源,100%API兼容替代   UICollectionView for iOS4.3 +

     

您想使用UICollectionView,但仍需要支持iOS4 / 5吗?   然后你会爱上这个项目。我原本是为它写的   PSPDFKit,我的iOS PDF框架,支持文本选择和   注释,但这个项目似乎对其他人有用   为自己保留:)另外,我会喜欢新网格视图的涌入   停止。更好的只是编写布局管理器并构建一个伟大的   代码库。

     

目标是在iOS 4/5上使用PSTCollectionView作为后备和   在iOS6上切换到UICollectionView。我们甚至使用某些运行时技巧   在运行时为旧版iOS创建UICollectionView。   理想情况下,您只需链接文件,一切都适用于旧版本   系统。实际上,它并不那么容易,特别是当你的时候   使用UICollectionView类的子类,因为它们不可能   在运行时更换。

答案 1 :(得分:2)

你做不到。只要将集合视图控制器拖放到故事板,它就会尝试自动引用它,这会导致编译错误。

答案 2 :(得分:2)

通过故事板没有针对6.0之前部署的兼容性解决方案,但PSTCollectionView确实支持iOS 5.0+并且得到了积极维护。它在运行时可以在6.0及更高版本上使用UICollectionView*,并且应该与storyboard兼容。