DetailView no se abre desde la prensa UITableViewController (iOS Xcode)

Dentro de mi TableView, estoy presionando una de las celdas para ingresar a la vista detallada y, por alguna razón, no me llevará a la vista detallada. ¿Alguien ve un problema en el siguiente código?

Para el contexto, este es un directorio de maestros, y al presionar una de las celdas, aparece la imagen de los maestros y otra información.

Gracias por la ayuda ... si necesitas más información, puedo agregarla.

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {

//Get the selected teacher

NSDictionary *dictionary = [listOfItems objectAtIndex:indexPath.section];
NSArray *array = [dictionary objectForKey:@"Teachers"];
NSString *selectedTeacher = [array objectAtIndex:indexPath.row];

//Initialize the detail view controller and display it.
DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:@"DetailViewController" bundle:[NSBundle mainBundle]];
dvController.selectedTeacher = selectedTeacher;
[self.navigationController pushViewController:dvController animated:YES];
dvController = nil;

}

preguntado el 05 de febrero de 12 a las 03:02

2 Respuestas

Debe verificar si dvController está cargado correctamente, así que intente NSLog dvController una vez que haya llamado al alloc-init. Otra forma de crear una instancia es usar esta simple llamada que funciona si creó el controlador de vista y el xib juntos:


DetailViewController *dvController = [[DetailViewController alloc] initWithNibName:nil bundle:nil];

Además, no hay ninguna razón para anular dvController al final. Si le preocupa la gestión de la memoria, es decir, no quiere filtrar dvController, simplemente libérelo automáticamente. Así que reemplace:


dvController=nil;

con:


[dvController autorelease];

esto funciona porque el controlador de navegación retiene el controlador de vista empujado (o usa ARC).

Finalmente, supongo que se llama tableView: didSelectRowAtIndexPath: ... si no estoy seguro, solo un lugar un punto de interrupción.

Respondido 05 Feb 12, 08:02

Gracias, estoy usando ARC, así que eliminé todos los elementos de la versión. Creé la plumilla y el controlador de vista juntos ... ¿Dónde agregaría esa línea? ¿En lugar del que tiene "initwithname"? Perdón por estas preguntas básicas ... no tengo mucha experiencia objetiva ... ¡Gracias! - Fitz

Sí, intente agregar esa línea reemplazando la suya. Y elimine el dvController = nil al final. E inmediatamente después de dvController = [[DetailViewController alloc] initWithNibName ...] agregue esta línea: NSLog (@ "View controller:% @", dvController) y verifique en la consola del depurador que imprime algo diferente a "null". - vigio24

Ok, gracias ... sigue siendo el mismo problema ... esto es lo que se muestra '2012-02-05 14: 49: 47.751 Nombre de la aplicación [6257: f803] Ver controlador: ' ¿algunas ideas? ¡gracias por ayudar! - Fitz

por lo que el controlador de vista de detalles está bien; Supongo que el controlador de navegación también está en su lugar (intente agregar esto: NSLog (@ "Controlador de navegación:% @", self.navigationController); Además, no olvide eliminar la declaración dvController = nil, no debería afectar pero quién sabe ... En nada funciona, es imposible para mí ayudarlo más con solo la instantánea del código proporcionada. vigio24

Esto significa que no cargó el controlador de navegación, por lo que no puede presionar nada. Esto explica el problema. Probablemente el controlador de vista que contiene la tabla no esté dentro de un controlador de navegación. - vigio24

No sé si alguna vez resolvió su problema, pero yo estaba teniendo el mismo problema donde no aparecía mi Vista detallada. Finalmente reemplacé

[self.navigationController pushViewController:dvController animated:YES];

con

[self presentModalViewController:dvController animated:YES];

Y funcionó. Espero que ayude.

Respondido 26 Feb 12, 07:02

constique, gracias, eso también funciona para mí. Pero no veo el botón de retroceso presente, ¿es algo relacionado con este problema ?, ¿eso significa que no puedo volver a la primera vista? - Quién soy

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.