El problema es bastante simple de entender con las imágenes. Tengo un UINavigationController que permite al usuario cambiar a las vistas.Barra de navegación que no muestra la propiedad cuando pushViewController
La primera vista contiene una barra de búsqueda y una vista de tabla, así:
El segundo es una vista básica donde la información acerca de la célula son pantalla
Cuando hago clic en la barra de búsqueda, la navegación el controlador se oculta y la barra de búsqueda está ahora en la parte superior.
Ahora, si hago clic en una celda, se va a la segunda vista, pero la barra de navegación en primer lugar se oculta, como a continuación:
Y entonces, aparece automáticamente como esa:
he intentado un par de cosas como mostrar la barra de navegación antes de empujar el siguiente controlador de vista, pero es bastante fea .. ¿alguien sabe cómo mostrar la barra de navegación directamente en la segunda vista (como en la aplicación de contacto)?
[ACTUALIZACIÓN]: Código
AppDelegate.m (Estoy hablando de navigationcontroller2)
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
FirstViewController *viewController1 = [[FirstViewController alloc] initWithNibName:@"FirstViewController" bundle:nil];
SecondViewController *viewController2 = [[SecondViewController alloc] initWithNibName:@"SecondViewController" bundle:nil];
viewController1.managedObjectContext = [self managedObjectContext];
viewController2.managedObjectContext = [self managedObjectContext];
viewController1.viewController2 = viewController2;
UINavigationController *navigationcontroller1 = [[UINavigationController alloc] initWithRootViewController:viewController1];
[navigationcontroller1.navigationBar setTintColor:[UIColor lightGrayColor]];
UINavigationController *navigationcontroller2 = [[UINavigationController alloc] initWithRootViewController:viewController2];
[navigationcontroller2.navigationBar setTintColor:[UIColor lightGrayColor]];
self.tabBarController = [[UITabBarController alloc] init];
self.tabBarController.viewControllers = [NSArray arrayWithObjects:navigationcontroller1, navigationcontroller2, nil];
self.window.rootViewController = self.tabBarController;
[self.window makeKeyAndVisible];
return YES;
}
FirstView.m
- (void) searchBarTextDidBeginEditing:(UISearchBar *)theSearchBar {
[self.navigationController setNavigationBarHidden:YES animated:YES];
}
- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
if (!noResultsToDisplay) {
PinDetailsViewController *pinDetailsViewController = [[PinDetailsViewController alloc] initWithNibName:@"PinDetailsViewController" bundle:nil];
NSManagedObject *managedObject = [fetchedResultsController objectAtIndexPath:indexPath];
Pin *pin = (Pin *) managedObject;
[self.navigationItem setTitle:@"Pins"];
[self.navigationController pushViewController:pinDetailsViewController animated:YES];
[pinDetailsViewController updateWithPin:pin];
}
}
Si necesita cualquier otra cosa, solo pregunta, pero creo que todo está ahí.
Por favor, publique código. De lo contrario, es muy difícil ver dónde está el problema. – MishieMoo