我有一个包含6个单元格的集合视图,如何在单击时让每个单元格打开一个新的viewcontroller?
答案 0 :(得分:1)
为了实现您的目标,您需要编辑2个文件:
在故事板中,您需要为集合视图中的每个静态单元格添加单元格视图。只需将UICollectionViewCells
拖到集合视图即可。对于每个单元格,在Storyboard的文档大纲中选择单元格时,您需要在属性检查器中定义唯一的可重用标识符(表示名称,如 CellType1 )。然后从每个单元格控制拖动到所需的目标视图控制器以创建Push segue
(前提是您的集合视图与UINavigationController
相关联。)
创建UICollectionViewController
的子类,并将其作为集合视图控制器的类在Storyboard中分配(请参阅标识检查员)。
在UICollectionViewController
子类中实现以下方法:
- (NSInteger)numberOfSectionsInCollectionView:(UICollectionView *)collectionView
{
return 1;
}
- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section
{
// Enter the number of static cells that are present in the Storyboard's collection view:
return 3;
}
- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath
{
// Enter the reusable identifiers that are defined for each cell in the Storyboard's collection view:
NSArray *cellIdentifiers = @[@"CellType1", @"CellType2", @"CellType3"];
NSInteger cellIdentifierIndex = indexPath.item;
// Make one identifier the default cell for edge cases (we use CellType1 here):
if (cellIdentifierIndex >= cellIdentifiers.count) cellIdentifierIndex = 0;
UICollectionViewCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellIdentifiers[cellIdentifierIndex] forIndexPath:indexPath];
// Configure the cell …
return cell;
}
我创建了一个演示应用来展示完整的实现:https://github.com/widescape/StaticCollectionViewCells