通过选择以编程方式创建的collectionView的Cell来切换到另一个ViewController

时间:2014-02-28 21:57:21

标签: objective-c uiviewcontroller uinavigationcontroller uicollectionview

我有一个以编程方式创建的CollectionView,现在我想通过选择其中一个Cell来切换到另一个CollectionView。到目前为止,我的代码是什么,但没有任何反应:

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath*)indexPath{
    NSLog(@"Cell selected");
    DetailCell *detailCell = [[DetailCell alloc] init];
    [self.navigationController pushViewController:detailCell animated:YES];
 }

控制台说“已选中单元格”,因此CollectionView会识别我的触摸,但应用程序不会切换到其他视图。我已经使用自定义类“DetailCell”创建了一个ViewController。

2 个答案:

答案 0 :(得分:0)

我会检查并确保你的self.navigationController不是nil。

答案 1 :(得分:0)

我刚刚解决了这个问题:

mainView .m

cView = [[CollectionView alloc]init];
cView.view.frame = CGRectMake(0, 0, 320, 436);
cView.nav = self.navigationController;
[_contentScrollView addSubview:cView.view];

CollectionView.h

@property (nonatomic,weak)  UINavigationController *nav;

CollectionView.m

-(void)collectionView:(UICollectionView *)collectionView didSelectItemAtIndexPath:(NSIndexPath*)indexPath{

    DetailCell *detailCell = [[DetailCell alloc] initWithDetails:_pageCategorie and: indexPath];
    [_nav pushViewController:detailCell animated:YES];

 }