ios - 如何能让点击cell里面的uicollectionview的每一行实现跳转?
伊谢尔伦
伊谢尔伦 2017-04-17 17:35:35
[iOS讨论组]

因为是在uitablecell里面创建了一个uicollectionview,所以点击每一行的方法写在cell类里面, 但是写跳转方法的时候发现点不到控制器,求大神教教如何破!!!

伊谢尔伦
伊谢尔伦

小伙看你根骨奇佳,潜力无限,来学PHP伐。

全部回复(6)
迷茫

这个问题特别好,理论上来说,该uicollectionview的delegate应该由tableviewcell去响应。
可是单纯的cell是拿不到viewcontroller的。这个就需要你自己提前去考虑。
这个cell里面的uicollectionview里面的内容,是由谁提供的,是不是可以动态的。
如果你把这种包含uicollectionview的tableviewcell当成是一种可以向很多人提供使用时,你又会如何去设计?

我说个简单的初步解决方法,对这个类型的cell增加一种delegate,有一个getViewController的方法。cell.delegate = self;
viewcontroller实现getViewController方法。
至于你要navi或者tab或者uivc都可以 看你自己需要。
cell里面的跳转实现获取viewcontroller可以这么写 [self.delegate getViewController];
看得懂么?

阿神
  • (void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath )indexPath{} 这个方法是

黄舟

在storyboard中,可以试一试在Cell中放container,然后container VC指向CollectionVC,在CollectionVC中写collction跳转方法,在tableViewVC中写tableView的跳转方法

ringa_lee

问题解决了,我上一下代码,首先在tableViewCell里面创建委托方法

在.m里面代码

最后在controller里面实现委托方法就可以了

高洛峰

方法一 获取控制器 (一般没人用不建议)

  • (UIViewController*)viewController {
    for (UIView* next = [self superview];next;next = next.superview)
    {

       UIResponder* nextResponder = [next nextResponder];
       if ([nextResponder isKindOfClass:[UIViewController class]]) {
           return (UIViewController*)nextResponder;
       }

    }
    return nil;
    }

方法二在tableViewcell 添加代理(在MVC模式是最常用的建议)

天蓬老师

除了delegate,还可以采用写block回调函数的方法实现,题主可以试试。

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号