example custom bar ios xcode uinavigationcontroller uinavigationitem uitabview

ios - custom - root view controller navigation controller



El título de navegación no se muestra en la vista con el controlador de vista de pestañas, pero funciona la navegación "hacia atrás" (3)

Soy relativamente nuevo en el desarrollo de iOS Objective-C, y me encontré con un problema que no puedo encontrar.

Tengo un Table View Controller , con dos células prototipo, que se pueblan bien. Este Table View Controller es una de las tres Tab Views , y la View que envía a las Tab Views tiene un Navigation Controller . Esto significa que las vistas dentro de las Tab Views también tienen una barra de Navigation . La barra funciona bien, en términos de que el botón "volver" funciona como se espera, y la barra está en posición. Sin embargo, (al menos en la Vista de lista), la Navigation Bar no se reconoce completamente: su título no aparece y las celdas de la tabla comienzan directamente debajo de la barra de estado, en lugar de debajo de la barra de navegación.

Aquí hay un par de capturas de pantalla que muestran el problema: lo que aparece en Xcode (lo que espero que suceda) Y luego, en el dispositivo, esto es lo que realmente aparece: el botón Atrás en su lugar y funcionando bien, pero sin campo de título, y las celdas de la tabla comienzan demasiado altas.

Intenté agregar Navigation Items y Navigation Bar Navigation Items , y al agregar un Navigation Item me permite poner un título en Xcode, todavía no aparece en el dispositivo en las pruebas. También traté de agregar otro Navigation Controller justo antes de esta vista, pero eso tampoco resolvió el problema y causó problemas de navegación más abajo en la heiraquía.

Espero haber sido lo suficientemente claro, por favor diga si necesito publicar más información: soy relativamente nuevo en Xcode y por lo tanto no estoy seguro de qué es exactamente lo que se aplica y qué no. ¡Gracias!


por favor intente con este código, podría arreglar su posición en la mesa

// Since in iOS7 the nav bar is translucent by default, so the table view starts at (0,0) // you can either disable the translucent, which i don''t recommend unless you really want to // or just add 64 pixel on the top of your table view [self.YOURTABLEVIEW setContentInset:UIEdgeInsetsMake(64, 0, 0, 0)];

y para el título, intente esto

self.tabBarController.navigationItem.title =@"YOUT TITLE NAME";

Espero que ayude..


Tuve el mismo problema, pero lo que hice para crear este problema fue que la acción de mis botones se estaba conectando a la tabla misma y no a la tabla Controlador. Eliminé la acción modal y creé una nueva acción en el controlador de la mesa y solucionó el problema.


Asumiendo su jerarquía como

NavigationController -> ViewController -> TabBarController -> ViewController1 -> ViewController2 -> ViewController3

Si desea ocultar un elemento de navegación en viewcontroller1, agregue la siguiente línea

self.navigationController.navigationBarHidden = YES;

Si desea mostrar el título en viewcontroller2, agregue la siguiente línea en

self.navigationController.navigationBarHidden = NO; //add this if you hide navItem viewcontroller1 [self.parentViewController.navigationItem setTitle:@"Title"];

Si desea ocultar el botón atrás y mostrar el título en viewcontroller3, agregue la siguiente línea

self.navigationController.navigationBarHidden = NO; [self.parentViewController.navigationItem setTitle:@"Contacts"]; self.parentViewController.navigationItem.hidesBackButton=YES;

Agregue estas líneas al método viewdidAppear en lugar de ViewdidLoad, si tiene problemas para mostrar cuándo cambia las pestañas.