TableView didSelectRowAtIndexPath 不执行

是因为被被其他控件覆盖了。

比如说:我在cell上有一个按钮,点击之后会弹出popView,popView是一个tableview,这个tableView的didSelectAtIndexPath会执行,但是下面那个主的TableView的代理方法就不会执行了。

解决方法:
1、父类事件设置代理

UIGestureRecognizer *tapGesture  
tapGesture.delegate = self;

2、覆盖方法

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
  if ([NSStringFromClass([touch.view class]) isEqualToString:@"UITableViewCellContentView"]) {
    return NO;
   }
  return  YES;
}

推荐阅读更多精彩内容

  • 1.ios高性能编程 (1).内层 最小的内层平均值和峰值(2).耗电量 高效的算法和数据结构(3).初始化时...
    欧辰_OSR阅读 23,056评论 8 230
  • Swift1> Swift和OC的区别1.1> Swift没有地址/指针的概念1.2> 泛型1.3> 类型严谨 对...
    cosWriter阅读 8,597评论 1 27
  • 人生七十古来稀,老当益壮俏阿姨手提蛋糕来贺喜,妈妈见了笑眯眯常伴左右顺心意,生儿如此好福气新年又添乔迁喜,日子越来...
    巴西哥阅读 1,637评论 8 11
  • 故乡似乎一层不变:布满灰的城乡公交车窗外,道路旁碎积的黄土延伸到麦田,为其划了一条歪歪曲曲的边界。天灰蒙一片,稍稍...
    爱如捕风阅读 136评论 1 0
  • #109-110 阿米巴这个名字,是从单细胞原生物阿米巴那里得来的……单细胞原生物阿米巴,能够根据环境的变化改变自...
    晓晓咻咻阅读 354评论 0 0