Esto puede ser una pregunta estúpida, pero ¿es posible mantener un UIBarButtonItem
derecho en varias vistas administradas por un UINavigationController
? Tengo una progresión de vistas que a menudo comparten el mismo derecho UIBarButtonItem
, pero cuando presiono una nueva vista en mi UINavigationController
, tengo que redefinir el botón cada vez, incluso si no ha cambiado. En su mayoría, la notable animación de transición de una vista a la siguiente es lo que me molesta porque el mismo botón se desvanece brevemente y luego vuelve a entrar, lo cual es innecesario ya que no hay un cambio visual real. ¿Debo considerar agregar un UIButton
como una subvista de mi UINavigationBar
y lograr un efecto de "botón de barra derecha" de esta manera?Propiedad RightBarButtonItem persistente de UINavigationItem
Respuesta
Lo hicimos en nuestra aplicación. Creamos un UIBarButtonItem único que intercambiamos de un UIViewController a otro mientras el usuario navega. El truco fue usar UINavigationControllerDelegate, el método navigationController: willShowViewController: animado. Configuramos el elemento de barra derecha derecho de UIViewController saliente en cero y el elemento de barra de barra derecho del controlador entrante en su botón. Es difícil de manejar, pero funciona.
UIBarButtonItems se pueden crear como instancias independientes en un archivo nib/xib. Si no ocurre nada especial que le impida construir el botón en el constructor Interfaz, debe conectarlo a la propiedad RightBarButtonItem del UINavigationItem para cada controlador de vista que necesite reutilizar el botón. No se requiere el objetivo c.
Hola Matt, ¿Puedes ser más específico con el ejemplo? Creo que esta es la implementación en el código de ejemplo NavBar.xcode, pero estoy teniendo problemas para seguir todo el proceso. (Por cierto, he votado a favor de su respuesta, ya que creo que es correcta y la solución más elegante). – mobibob
- 1. ¿Cómo puedo agregar dos UIBarButtonItems a UINavigationItem?
- 2. UINavigationItem titleView position
- 3. botón de información rightBarButtonItem, ningún espacio a la derecha
- 4. tratando de crear programáticamente RightBarButtonItem
- 5. Ocultando el botón de barra de UINavigationItem
- 6. UISegmentedControl, UIToolbar y UINavigationItem
- 7. UINavigationItem # titleView problemas de alineación
- 8. UINavigationItem titleView "ignorado si leftBarButtonItem está configurado"?
- 9. Persistente vs no persistente - ¿Qué debería usar?
- 10. UINavigationItem Botón Atrás área táctil demasiado grande
- 11. Más de 1 rightBarButtonItem en la barra de navegación
- 12. Servicio persistente
- 13. persistente NSOperationQueue
- 14. Explique esta lógica de margen para leftBarButtonItem, rightBarButtonItem, titleView
- 15. rightBarButtonItem no aparece en la barra de navegación iOS
- 16. Subproceso de python persistente
- 17. Persistente ignorante Capa de dominio
- 18. Conexión HTTP persistente con RestSharp
- 19. ¿Cómo creo una cookie persistente contra una no persistente?
- 20. detectar pulsación larga en el botón Atrás de UINavigationItem
- 21. Cola Rápida Persistente de .NET
- 22. Modo plegable persistente de Emacs
- 23. persistente de autenticación Token Expira
- 24. iOS estrategia de almacenamiento persistente
- 25. Django - Caché persistente
- 26. Google OpenID + OAuth persistente?
- 27. Almacenamiento persistente Cocoa/MacOSX
- 28. Memorización persistente en Python
- 29. mysqli conexión persistente
- 30. HttpURLConnection persistente en Java
¡Impresionante! Gracias. Olvidé investigar el UINavigationControllerDelegate. – LucasTizma
Gracias !! ¡¡Trabajó para mi!! :) –
Oye, ¿cómo puedo obtener el controlador UIView saliente? parece que solo puedo obtener el que se presentará, pero no el actual? cheers – zanona