Ios UIView中的UITableView未触发didSelectRowAtIndexPath

Ios UIView中的UITableView未触发didSelectRowAtIndexPath,ios,objective-c,iphone,uitableview,Ios,Objective C,Iphone,Uitableview,我一直在寻找这个问题的答案,但没有找到一个有效的解决方案,所以我想我应该自己问一个 我有一个普通的UIViewController,里面有一个UITableView。我正在正确填充表视图,但是方法 -(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(nonnull NSIndexPath *)indexPath 没有人打电话。我的数据源和代理都已正确链接,我已启用用户交互,并且为选择设置设置了单个选择 问题可能是

我一直在寻找这个问题的答案,但没有找到一个有效的解决方案,所以我想我应该自己问一个

我有一个普通的
UIViewController
,里面有一个
UITableView
。我正在正确填充表视图,但是方法

-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(nonnull NSIndexPath *)indexPath
没有人打电话。我的数据源和代理都已正确链接,我已启用用户交互,并且为选择设置设置了单个选择


问题可能是在视图控制器中嵌入
UITableView
?如何解决此问题?

您使用过手势识别器吗?如果是,请尝试此代码

- (BOOL)gestureRecognizer:(UIGestureRecognizer *)gestureRecognizer shouldReceiveTouch:(UITouch *)touch
{
    if ((touch.view == tblObj)) 
    {
        return NO;
    }
    return YES;
}

是否设置了tableview委托和数据源

self.tableView.delegate = self;
self.tableview.dataSource = self;

从interface builder(即从视图控制器或情节提要)中选择您的
tableview

然后从
实用程序
中选择
属性检查器

现在确保以下设置已存在

 Selection - Single Selection

 Editing  - No Selection during editing (if you are selecting row during editing then change it)

 Show selection on touch checkbox should be checked
视图下

 User Interaction Enable must be Checked.
然后选择您的
tableview单元格

确保

 User interaction enable is checked under `view`
然后选择单元格的内容视图,并检查是否选中了用户操作启用

第二件事是确保为您的根视图(即self.view)启用了用户交互,并且整个视图层次结构位于self.view和tableView之间

并确保已将
datasource
delegate
正确设置为self-like

  self.myTableView.delegate = self;
  self.myTableView.dataSource = self;

结果证明我是个白痴,在我的自定义UITableViewCell中写了一行

self.userInteractionEnabled = NO;
哎呀:/


感谢所有试图解决我的问题的人。

您确定您没有使用DidDecelrowatindexpath吗?我做过很多次这样的事情,但总是很痛苦spot@Signo是的,我看到其他一些人在别处建议此修复,不幸的是,这不是我的问题:/我有您在这里提到的所有内容,但我将委托和数据源与Interface Builder链接,而不是在代码中。这会导致问题吗?它不应该造成问题,然后还要像我在回答中提到的那样设置委托和数据源。我不这么认为。它可能隐藏在某个地方,或者在显示我的视图层次结构的侧栏中明显可见吗?在视图中,如果您使用了任何类型的gester,那么这是可能的。因为当您单击tableview时,会调用单元格gester方法。