bar ios animation uinavigationcontroller uibutton uitoolbar

uinavigationbar ios



Botones de la barra de herramientas parpadeando(fundido de salida rápido) al presionar el controlador de vista animado (2)

Me sorprende que nadie te haya respondido. Acabo de enfrentar este problema, y ​​aquí hay una solución que he encontrado.

  1. Subclase su controlador de navegación

  2. Anula tus métodos push / pop

-(UIViewController*)popViewControllerAnimated:(BOOL)animated { self.navigationBarHidden = YES; UIViewController *vc = [super popViewControllerAnimated:animated]; self.navigationBarHidden = NO; return vc; } -(void)pushViewController:(UIViewController *)viewController animated:(BOOL)animated { self.navigationBarHidden = YES; [self pushViewController:viewController animated:animated]; self.navigationBarHidden = NO; }

Me hizo el truco.

Al presionar un controlador de vista, los botones de la barra de herramientas se desvanecen y vuelven a aparecer con la nueva vista. El problema es que tengo los mismos botones en la vista siguiente que el anterior, así que parece que los botones hacen un flash rápido al cambiar de pantalla. Mi pregunta es si esto puede evitarse deshabilitando el fundido de los botones de la barra de herramientas para el controlador de navegación cuando se empuja a una nueva vista o si la barra de herramientas se puede vincular al controlador de navegación de tal manera que sea igual para todas las vistas. La última sugerencia es que he visto que los botones de mi barra de navegación no desaparecen cuando pulso una nueva pantalla.


Sé que esta pregunta es antigua, pero hay una solución simple: establezca los elementos de navegación de ambos controladores en el mismo elemento de botón de barra, y no se animará. P.ej:

UIBarButtonItem* item = [[UIBarButtonItem alloc] initWith...]; viewController1.rightBarButtonItem = item; viewController2.rightBarButtonItem = item;

Si ahora presiona viewController2 después de mostrar viewController1, el elemento de navegación no se animará.