如何通过Button获取UITableViewCell

发现一个奇怪的问题:

手机(ios7)

2015-06-17 15:11:29.323 ***[1412:60b]  [btn superview] =  UITableViewCellContentView 

2015-06-17 15:11:29.324 ***[1412:60b]  [[[btn superview]superview]class] = UITableViewCellScrollView

 

 

模拟器:ios8

2015-06-17 15:12:54.614 MyQ[7862:125756]  [btn superview] =  UITableViewCellContentView 

2015-06-17 15:12:54.614 MyQ[7862:125756]  [[[btn superview]superview]class] = EditTableViewCell

 

百度了一下发现:

http://www.cocoachina.com/bbs/read.php?tid=232335

提供的方法:

1
2
3
4
5
6
7
8
9
10
11
12
13
OffLineTableViewCell *cell = nil;
    if (IsIOS7) {
        UIView *view = [btn superview];
        UIView *view2;
        if (IsIOS8) {
            view2 = view;
        }else{
            view2 = [view superview];
        }
        cell =  (OffLineTableViewCell *)[view2 superview];
    }else{
        cell = (OffLineTableViewCell *)[btn superview];
    }

 

果然太麻烦,弃用,换成现在这个,亲测可用。。。

 

  

这个方法真的是太靠谱了,这样还省了我要在TableViewCell中定义delegate。太赞!

还有一个支持这个方法的原因:如果删除tableviewcell中的某个数据后,再点btn可能会出现数组越界的情况。

 

-(void)cellBtnClicked:(id)sender event:(id)event

{

    NSSet *touches = [event allTouches];

    UITouch *touch = [touches anyObject];

    CGPoint currentTouchPosition = [touch locationInView:favTableView];

    NSIndexPath *indexPath =[favTableView indexPathForRowAtPoint:currentTouchPosition];

    if (indexPath!=nil) {

        ProfileViewController *profile = [[ProfileViewController alloc]init];

        profile.empInfoempSearchResultArray[indexPath.row]; //error

        [self.navigationController pushViewController:profile animated:YES];

        

        

        RootViewController *rootVC = (RootViewController *) self.tabBarController;

        [rootVC showTabBar:NO];

    }

}

 

posted @   尘恍若梦  阅读(380)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
点击右上角即可分享
微信分享提示