UITableView didSelectRowAtIndexPath: no funciona

Cuando selecciono la fila de la tabla, no pasa nada. No fue a ContentController y no puedo encontrar la UILabel que declaré en ContentController.h cuando quiero vincularla a resultLabel .

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { ContentController *detailview = [[ContentController alloc] initWithNibName:@"ContentController" bundle:nil]; detailview.detailString = [NSString stringWithFormat:@"%d",indexPath.row]; [self.navigationController pushViewController:detailview animated:YES]; [detailview release]; } 

ContentController

 - (void)viewDidLoad { [super viewDidLoad]; // Do any additional setup after loading the view from its nib. resultLabel.text = self.detailString; } 

Esto puede deberse a que no ha establecido su propiedad de vista de tabla para delegar y fuente de datos mediante:

 tableview.delegate=self; tableview.datasource=self; 

o establecer su propiedad en xib es otra opción

clicable == NO

Puede ser un estado que en el método cellForRowAtIndexPath :

 cell = [self tableCellWithHeight:height clickable:NO withArrowAccessory:NO]; 

if clickable == NO entonces el método didSelectRowAtIndexPath nunca llamará a esa celda.

Otra cosa a verificar es asegurarse de que las celdas prototipo y su modo de selección o estilo de selección.

Ir al generador de interfaces >>> windows de utilidad en el lado derecho >>> inspector de attributes >>> Buscar list desplegable Selección.

En el tutorial de apple que estaba siguiendo, le pide que lo establezca en ninguno, haciendo que parezca que el delegado didSelect 'no estaba disparando. Al establecer el modo de selección en ninguno, neutralizó efectivamente esta capacidad. Lo cambié a Selección única y todo comenzó a funcionar de nuevo.

El control es que el control está llegando dentro del punto de interrupción didSelectRowAtIndexPath. Si no, solo verifique si ha configurado el delegado UITableView o no.

en su ContentController.h

 NSString *detailString; @property (nonatomic, retain) detailString; 

ContentController.m

 @synthesize detailString; 

Y en tu class donde tienes vista de tabla. establecer delegado de vista de tabla y fuente de datos en sí mismo (en xib al propietario del file).

Aquí hay una image de configuration de la fuente de datos y el delegado en el generador de interfaces para UITableview, que es necesario para que el método siguiente se dispare al tacto.

..

  - (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { return 1; } - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { return [self.myAlphabet count]; } - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell" forIndexPath:indexPath]; cell.textLabel.text = [self.myAlphabet objectAtIndex:indexPath.row]; return cell; } - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { //method for getting text (can be changed to push views) NSString*mystring; mystring = [self.tableView cellForRowAtIndexPath:indexPath].textLabel.text; NSLog(@"%@",mystring); } 

Establecer fuentes de datos y delegar en el creador de interfaces

Al crear una celda (en cellForRowAtIndexPath) debe notar a:

propiedad userInteractionEnabled Determina si la celda se puede seleccionar (en el clic se llamará -didSelectRowAtIndexPath).

 if (!isClickable) { cell.userInteractionEnabled = NO; } 

propiedad selectionStyle: determina si la vista de background seleccionada se mostrará onclick.

 cell.selectionStyle = isClickable ? UITableViewCellSelectionStyleBlue : UITableViewCellSelectionStyleNone; 

Bueno, tuve un escenario diferente, HJManaged image HJManaged en la celda UITableView y la image HJManaged tiene su propio método de toque en su delegate , así que cuando didSelectRowAtIndexPath vista de tabla en lugar de didSelectRowAtIndexPath , delegado el método de HJManaged de HJManaged Image.

Entonces, lo que encontré solución, regresé UITableView Cell y la propiedad de HJManaged habilitada de HJManaged Image.

Compruebe si está implementando este método

 - (BOOL)tableView:(UITableView *)tableView shouldHighlightRowAtIndexPath: (NSIndexPath *)indexPath { return NO; } 

deshabilita la selección de celda

Esto puede ocurrir si no ha agregado su delegado de vista de tabla y la fuente de datos. Asegúrese de agregar estas dos líneas en su vista, ¿los methods de carga

  tableview.delegate=self; tableview.datasource=self; 

Mi situación es que olvidé establecer la propiedad Delegado de tableView. Tal vez debería conectar el delegado de tableView al controller de vista actual.