AVISO: Cualquier pregunta que no cumpla ninguno de estos criterios podrá ser borrada sin previo aviso.

Hola.

Estoy finalizando una aplicación, para practicar con iOS (ya realice otra consulta por aquí). La cosa es que sé crear los datos con CORE DATA, pero no se acceder a los datos y mostrarlos en una vista. Os explico como tengo estructurada la aplicación "Agenda":

  • Tipo Datos: con tres campos string (nombre,teléfono y notas).

  • MasterViewController: Es un table view donde se ven los nombres de los contactos creados, al pulsar sobre las celdas, se abre el DetailViewController, con los detalles del contacto.

  • NewViewDetail: Se conecta con un segue modal. Al pulsar el botón "ADD" del MasterViewController, aparece esta vista y permite crear un nuevo contacto. El dato se almacena usando CORE DATA. Lo guarda bien, pues lo he comprobado en el archivo que genera.

  • DetailViewController: Se conecta con un segue push. Aquí viene el problema, no soy capaz de acceder a CORE DATA. Toda la información que encuentro por internet, explica como ordenarlo en un array y luego mostrarlo con un NSlog, por consola, pero no se como hacer que los label que forman esta vista, se actualicen con sus datos correspondientes.

En definitiva, desde el MasterViewController veo los datos creados, en cada celda, pero no al acceder al DetailViewController.

¿Me podríais dar unas indicaciones de como hacerlo? Gracias.

preguntado 05 Ago '12, 20:42

ivamago's gravatar image

ivamago
534813


Necesitas hacer varias cosas:

En el DetailViewController crea una propiedad de tipo Dato.

En el MasterViewController captura el segue con el método prepareForSegue:sender:

En el método prepareForSegue:sender: deberías tener algo así:

- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender
{
    // suponiendo que nuestro segue tenga el identificador "mySegue"
    if ([segue.identifier isEqualToString:@"mySegue"])
    {
         // obtenemos el índice seleccionado en la tabla del masterViewController
         NSIndexPath *indexPath = [tableView indexPathForSelectedRow];

         // aquí es donde le pasamos al detailViewController el contacto que debe mostrar (date cuenta de que contactData debe ser una propiedad de tipo Dato y myContactArray es el array de contactos que está mostrando tu masterViewController
         segue.destinationViewController.contactData = [myContactsArray objectAtIndex:indexPath.row];
    }
}

En principio, con eso debería funcionar. ¡Saludos!

enlace permanente

respondido 05 Ago '12, 22:48

Daedalus's gravatar image

Daedalus
37117

Era lo que necesitaba.

¡Muchas gracias!

(06 Ago '12, 01:45) ivamago
Tu respuesta:
Activar/desactivar vista previa

Sobre esta pregunta

Etiquetas de la pregunta:

×20
×20
×14
×2
×1

Pregunta realizada el: 05 Ago '12, 20:42

Pregunta visitada: 287 veces

Última modificación: 06 Ago '12, 01:45

Seguir esta pregunta

Por Email:

Una vez que entres podrás suscribirte desde aquí para recibir actualizaciones

Por RSS:

Respuestas

Respuestas y Comentarios

Realizar Donación