未调用我的 didSelectRowAtIndexPath 方法。我重新加载表并重新加载,并调用 talbeView
的所有方法这是我的所有tableview方法:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
NSString *s = (NSString *) [app.Glb.arrayRoomList objectAtIndex:indexPath.row];
NSString *cellIdentifire = @"CellRoomList";
CellRoomList *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifire];
if(cell == nil)
{
cell = (CellRoomList*)[[[NSBundle mainBundle] loadNibNamed:@"CellRoomList" owner:self options:nil] objectAtIndex:0];
}
cell.lblRoomName.text = s;
return cell;
}
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
return [app.Glb.arrayRoomList count];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *userName = (NSString *) [app.Glb.arrayRoomList objectAtIndex:indexPath.row];
NSLog(@"userName :---- %@",userName);
ViewController *chatController = [[ViewController alloc] init];
chatController.chatWithUser = userName;
[self.navigationController pushViewController:chatController animated:YES];
}
我在堆栈中阅读了一些问题,但无法得到答案。
如果我长时间接触细胞而不是细胞的颜色变化,但没有调用didSelectRowAtIndexPath
为什么不叫它?
这是Snap:
答案 0 :(得分:2)
单元格中可能还有其他视图可以拦截触摸事件。确保将否设置为属性 userInteractionEnabled 以获取视图。
答案 1 :(得分:1)
我曾多次面对这个普遍问题。
请注意以下事项
最常见的原因是视图上的手势会阻止表格触及单元格。
答案 2 :(得分:0)
正如您所说的那样,您正在获取用户名,这意味着您的方法正在调用但不会重定向到另一个屏幕,因为您以错误的方式启动了视图控制器,因此请通过以下方式进行更改,
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
NSString *userName = (NSString *) [app.Glb.arrayRoomList objectAtIndex:indexPath.row];
NSLog(@"userName :---- %@",userName);
ViewController *chatController = [[ViewController alloc] initWithNibName:@"ViewControllerId" bundle:nil];
chatController.chatWithUser = userName;
[self.navigationController pushViewController:chatController animated:YES];
}
答案 3 :(得分:0)