如何启动 UINavigationController 推送以响应对 UICollectionViewCell 的点击

Posted

技术标签:

【中文标题】如何启动 UINavigationController 推送以响应对 UICollectionViewCell 的点击【英文标题】:How to initiate a UINavigationController push in response to a tap on a UICollectionViewCell 【发布时间】:2014-03-18 05:05:03 【问题描述】:

我正在使用UICollectionView,但是当我点击 UICollectionViewCell 时无法导航到另一个视图。

这是我的代码。

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

    if (indexPath.row==0)
    
        AboutTheBook *alarmView1 = [self.storyboard instantiateViewControllerWithIdentifier:@"AboutTheBook"];
        [self.navigationController pushViewController:alarmView1 animated:YES]; 
    

【问题讨论】:

你确定这个方法正在被访问,即你已经设置了 UICollectionView 的委托属性吗? 这与委托无关,这是一个问题用户没有设置导航控制器,因此他们无法从 didSelect 推送视图控制器。 【参考方案1】:

确定

    导航控制器嵌入到您尝试推送的 VC [或在其上面的流程中进入堆栈的 VC] AboutTheBook 是故事板中 VC 的唯一标识符 您正在点击集合视图的索引 0

【讨论】:

【参考方案2】:

试试这个。

UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:[NSBundle mainBundle]];
AboutTheBook *alarmView1=(AboutTheBook *)[storyboard instantiateViewControllerWithIdentifier:@"AboutTheBook"];
[self.navigationController pushViewController:alarmView1 animated:YES];

【讨论】:

以上是关于如何启动 UINavigationController 推送以响应对 UICollectionViewCell 的点击的主要内容,如果未能解决你的问题,请参考以下文章

UINavigationController

UINavigationController 风格

全屏显示 ViewController

多控制器

UINavigationControllerDelegate 不起作用

viewController 出现时出现黑色