viewDidAppear No se dispara en Tabbarcontroller > NavigationController > UITableView
-
22-07-2019 - |
Pregunta
Actualmente tengo un controlador de barra de pestañas configurado con un controlador de navegación en una de las pestañas, luego tengo una plumilla UITableView configurada para esa vista de Controladores de navegación. Todo esto se ha establecido a través de IB y quiero mantenerlo así. Como este tutorial http: //twilloapp.blogspot .com / 2009/05 / how-to-embed-navigation-controller.html ahora la vista se carga perfectamente cuando se llama a ViewDidLoad. Pero cuando luego cargo más vistas a través del código IE
MyApp_AppDelegate *delegate = [[UIApplication sharedApplication] delegate];
UINavigationController *nav = (UINavigationController *)delegate.controller.selectedViewController;
newViewController = [[newViewController alloc] initWithNibName:@"newView" bundle:nil];
[nav pushViewController:newViewController animated:YES];
//At this point the view works! and loads
Si intento volver con la barra de herramientas de navegación, vuelve a mi vista anterior bien
Ahora necesito actualizar la vista de tabla cuando regrese, pero llamar a viewDidAppear
no funciona.
Intenté agregar UINavigationDelegate
a la misma clase ViewController
que la vista de tabla y luego llamar a - (void) navigationController: (UINavigationController *) navigationController didShowViewController:
Pero eso no funcionó. También intenté agregar el mismo delegado que el controlador de la barra de pestañas y agregar el mismo navigationController didShowViewController:
allí, pero eso también falló.
¿Cómo consigo que esta tabla se actualice cada vez que se carga la vista?
Solución 2
Descubrí que me faltaba la declaración de delegado en el archivo de interfaz. doh! También probé que en muchos lugares solo funcionó cuando lo agregué a la primera vista de NavigationControllers (mi vista de tabla)
Otros consejos
No debería tener que llamar a viewDidAppear
desde su código. Cocoa Touch debería hacer eso por usted.
Llame al método reloadData
de la vista de tabla para que actualice su contenido.