因为是在uitablecell里面创建了一个uicollectionview,所以点击每一行的方法写在cell类里面, 但是写跳转方法的时候发现点不到控制器,求大神教教如何破!!!
因为是在uitablecell里面创建了一个uicollectionview,所以点击每一行的方法写在cell类里面, 但是写跳转方法的时候发现点不到控制器,求大神教教如何破!!!
(void)tableView:(UITableView )tableView didSelectRowAtIndexPath:(NSIndexPath )indexPath{} 这个方法是
在storyboard中,可以试一试在Cell中放container,然后container VC指向CollectionVC,在CollectionVC中写collction跳转方法,在tableViewVC中写tableView的跳转方法
方法一 获取控制器 (一般没人用不建议)
(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模式是最常用的建议)
2 回答1.1k 阅读
1 回答995 阅读✓ 已解决
1 回答2.7k 阅读
1 回答1.4k 阅读
1.7k 阅读
1 回答1.1k 阅读
1.3k 阅读
这个问题特别好,理论上来说,该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];
看得懂么?