prepareForSegue sin recibir llamadas al registrar una célula personalizada

Este no es un problema de que el identificador segue sea mal escrito o algo así. El método prepareForSegue no se está llamando cuando presiono una celda en un tableViewController. La instrucción log antes de la instrucción de control no se registra si presiono en la celda, solo cuando agrego una celda nueva.

 - (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender { NSLog(@"prepare for segue"); //not getting logged if I tap on an existing cell if ([[segue identifier] isEqualToString:@"AddTopic"]) { // works fine to add a new cell } if ([[segue identifier] isEqualToString:@"ShowDetail"]){ NSLog(@"in segue to display edit"); MMDisplayEditViewController *devc = (MMDisplayEditViewController *)[segue destinationViewController]; 

Puede ver en la image a continuación que hay una configuration de desplazamiento desde la celda en el controller de vista de tabla al controller de vista de edición en pantalla. introduzca la descripción de la imagen aquí

¿Por qué podría prepareForSegue no recibir llamadas?

Tenga en count que estoy usando una class personalizada para la celda de vista de tabla, pero no veo por qué eso influiría en nada.

Actualizar

Registré la celda personalizada en viewDidLoad del controller de vista de tabla principal

 - (void)viewDidLoad { [super viewDidLoad]; [self.tableView registerClass:[MMTableViewCell class] forCellReuseIdentifier:@"Cell"]; 

El problema se debe al registrar la class de la celda en viewDidLoad,

 [self.tableView registerClass:[MMTableViewCell class] forCellReuseIdentifier:@"Cell"]; 

Configuró el segue desde una celda en el guión gráfico, pero al registrar su class, la vista de la tabla obtiene su celda de la definición de class, no de la del guión gráfico que tiene la segue adjunta. Para solucionar el problema, simplemente borre esa línea.

La documentation para esto es algo incompleta. Solo debe registrar la class si la celda está completamente en código. El hecho de que esté utilizando una celda personalizada, no cambia este hecho: si tiene una celda en el guión gráfico y la configura en una class personalizada, no debe registrar nada.

En lugar de vincular su segue desde la celda al siguiente controller de vista, enlace desde el controller de vista al siguiente controller de vista. Déle a segue un identificador e implemente el método de delegado tableView:didSelectRowAtIndexPath así:

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { [self performSegueWithIdentifier:@"identifier" sender:indexPath]; } 

agregue este nombre "ShowDetail" en el segue en el storyboard si es así, use este código en el método didSelectRowAtIndexPath

 [self performSegueWithIdentifier:@"societe" sender:indexPath];