2015-05-23 31 views
0

我想让我的UITableView中的每个单元点击。我使用故事板,UITableViewDelegate和UITableViewDataSource都在ViewController.h中,并且表格正确显示数据。我的ViewController.m我已经添加了这样的代码UITableView选择事件不起作用

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
    long selectedRow = indexPath.row; 
    NSLog(@"touch on row %ld", selectedRow); 
} 

问题是,当我点击任何单元格时,此操作不会被调用。也许我应该添加一些连接到单元格原型?

+2

你设置的tableview委托自我? – Wraithseeker

+0

@Wraithseekerr非常感谢你!我设置了数据源,但不是委托。这是我的第一个iOS应用程序,不知道。我在Windows Phone上有背景,并没有认为我应该手动设置它。 –

回答

1

设置UITableView代表自我,它应该工作。您可能忘记将其设置在故事板中,因此您可以使用代码来完成它。

2
  1. 您可以尝试设置一个断点以查看它是否被调用。
  2. 检查是否userInteractionEnabled启用
  3. 检查是否有东西覆盖在你的UITableViewCell的顶部,防止触摸传递到您的UITableViewCell
+0

我试过调试,我发现它没有被调用。表格和单元格都启用了交互。而且上面没有任何东西。 –

+1

我以为你已经知道如何设置'UITableView',这些都是常见的错误。不知道你的设置没有完成。 –

0

在我的情况的问题是使setEditing:上实现代码如下造成didSelectRowAtIndexPath方法:不被调用。 如果你想编辑模式,并选择使您可以轻松地设置两个:

[self.tableView setEditing:YES animated:NO]; 
self.tableView.allowsSelectionDuringEditing = YES;