将UITableView添加为子视图时,didSelectRowAtIndexPath不会在单元格上触发

时间:2014-05-12 17:30:25

标签: ios objective-c uitableview

我有一个常规的UIViewController,我在UITableView中添加了viewDidLoad,如下所示:

dataTableView = [[UITableView alloc] initWithFrame:CGRectMake(0, 250, 320, 318)];
dataTableView.dataSource = self;

[self.view addSubview:dataTableView];

工作正常,单元格内容在那里,我通过调用添加到-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath。我可以滚动一切,但是我无法让细胞对触摸/点击作出反应。当我按下一个单元格时,它会保持选中状态,但我似乎无法对其进行操作。我正在使用的代码是

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
    NSLog(@"select");
}

但它永远不会发射。我是否必须在tableview和电话之间建立某种联系?如果是这样,为什么cellForRowAtIndexPath没有问题呢?任何帮助表示赞赏。我相信对于那些知道他们的“Objective-C”

的人来说,这很容易解决

1 个答案:

答案 0 :(得分:1)

您没有将自己设置为dataTableView的代表。

dataTableView.delegate = self;

cellForRowAtIndexPath有效的原因是因为dataSource的一部分而didSelectRowAtIndexPathdelegate的一部分。