【发布时间】:2014-07-22 08:25:22
【问题描述】:
我需要从我的自定义UICollectionViewCell 启动ViewController,但我无法在那里访问我的navigationController,所以我不知道如何启动它,因为我只知道一种方法。
只有这样的例子
LoginViewController *loginView = [[LoginViewController alloc]init];
[self.navigationController pushViewController:loginView animated:YES];
知道我该怎么做吗?
这就是我通常所说的cellclick
- (void)collectionView:(PSCollectionView *)collectionView didSelectCell:(PSCollectionViewCell *)cell atIndex:(NSInteger)index
{
[NjoftimeManager setSelectedListing:[[NjoftimeManager getMainListings] objectAtIndex:index]];
ListingViewController *listingView = [[ListingViewController alloc]init];
[self.navigationController pushViewController:listingView animated:YES];
}
但我想要做的是与这里不同的称呼
- (void) profileTapped:(UIGestureRecognizer *)gesture{
//some code
NSLog(@"PROFILI %li",(long)gesture.view.tag);
}
我已经给cell 的页脚视图添加了一个标签,并且想要在点击它时做一些不同的事情,我只能在Cell 类中获得点击事件。
【问题讨论】:
-
您需要将您的 UINavigationController 作为主窗口中的 rootViewController。然后你就可以启动它了。
-
如果您使用故事板,您可以绑定集合视图单元格和新控制器(并选择推送)。这样在点击集合视图单元格时,它将推送新的视图控制器。或者明确地调用“performSegueWithIdentifier”。它能解决你的问题吗?
-
我不使用故事板也不使用xib,只有代码
-
因此,如果您只使用代码,请在单元格上定义块。将它们分配给单元格并根据所需的操作调用它们。或者您可以编写 ViewController 的自定义扩展添加导航控制器。
-
@Elgert 我编辑了代码请检查
标签: ios xcode viewcontroller