IOS 不能触发didSelectRowAtIndexPath事件.
-
delegate 没有设置。
-
可能tableview被其他控件覆盖。(比如加载视图)
-
手势与tableview点击事件冲突
手势与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;
}
这样就可以了
tableView中deselectRowAtIndexPath的作用
1 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath 2 { 3 [tableView deselectRowAtIndexPath:indexPath animated:YES]; 4 // 不加此句时,在二级栏目点击返回时,此行会由选中状态慢慢变成非选中状态。 5 // 加上此句,返回时直接就是非选中状态。 6 }