2009-05-31 22 views
5

Estoy implementando una aplicación de administrador de notas que tiene un tableView en un tabBar donde se muestra la información principal de sus notas. Al acceder a una nota, puede editar sus propiedades. En un botón del tabBar puede elegir la forma en que se muestran las notas en tableView.iPhone Dev: Recargar datos de una vista de tabla desde un controlador secundario y otro controlador en un TabBar

El problema que tengo es que tampoco sé cómo volver a cargar los datos desde un controlador secundario o desde el otro controlador de la barra de pestañas. No sé cómo referirme a tableView desde ellos, así que puedo usar reloadData para actualizar la información de TableView.

Soy bastante nuevo en el desarrollo de iPhone ... cualquier ayuda será realmente apreciada.

Respuesta

2

el patrón MVC ayudará aquí,

, siempre y cuando mantenga la actualización de su modelo con la información que se necesita y los controladores están actualizando de ese modal. A medida que retrocede entre las vistas, termina automáticamente la actualización de las vistas.

de esa manera puede llamar a sus métodos de datos de recarga y se actualizarán.

[tableviewController.tableview reloadData]; 

es cómo accede al mensaje de datos de recarga.

+2

Gracias, Sé acerca de reloadData y puedo usarlo en el archivo donde están los métodos tableView, pero no sé cómo acceder a tableViewController en los controladores secundarios u otros controladores en el tabBar. –

+0

Excepto que esto no funciona con otros ViewControllers ... –

4

Ponga su código de actualización de tabla en viewWillAppear: en lugar de viewDidLoad - de esa manera cada vez que regrese a su controlador principal desde el controlador de niño, los datos se vuelven a cargar.

+0

Gracias, pero la función viewWillAppear no se está llamando en mi código ... ¿sabes por qué podría suceder esto? ¿Podría hacer un [self.tableView reloaData] dentro de esa función para resolver mi problema? –

+0

Sí, debería ayudar. Recuerde que viewWillAppear se define como - (void) viewWillAppear: (BOOL) animada No sólo - (void) viewWillAppear –

+0

Funciona, muchas gracias. Lo único que está mal ahora es que cuando vuelvo de los controladores secundarios, la fila permanece seleccionada a menos que seleccione otra. Permanece seleccionado incluso si hago clic en el botón de divulgación de otra fila y vuelvo a la vista de tabla. Es extraño ... ¿alguna idea sobre cómo resolver esto ?, gracias. –

8

Deberías probar NSNotificationCenter.

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(doSomething:) name:@"doSomethingNotification" object:nil]; 

[[NSNotificationCenter defaultCenter] postNotificationName:@"doSomethingNotification" object:nil]; 
0

Llegué al mismo problema al tratar con la celda del prototipo. Extraño, estaba bastante seguro de haber hecho todo bien.

Luego comencé a pensar si algo anda mal con XCode. Así que limpié todo, reinicié XCode y aún así me quejé.

Por fin, traté de rehacer mis cambios más recientes en el guión gráfico, que es agregar una clase tableviewcell y conectarla con todos mis controles de la interfaz de usuario. Finalmente dejó de quejarse.

No creo que este error haya sido causado por tu código o algo así, he llegado a varios errores extraños en iOS 5. Correcto, todavía está probando y tiene muchos errores.

De todos modos, el guión gráfico es genial y trataré de acostumbrarme a él, dibuja la imagen completa de tu aplicación y es fácil de manejar la relación entre las diferentes vistas. Además, me gusta mucho su método de preparación para la búsqueda.

OK Buena suerte.

Cuestiones relacionadas