¿Cuál es la diferencia entre self.navigationController.navigationItem y self.navigationItem? Estoy usando un UINavigationController en toda la aplicación y cuando uso self.navigationController.navigationItem.rightBarButtonItems, en uno de los métodos viewDidLoad de uno de los viewControllers, la matriz está vacía. Sin embargo, si utilizo self.navigationItem.rightBarButtonItems, veo mis elementos de botón de barra. ¿Cuál es la diferencia entre las dos llamadas? ¡Gracias!Diferencia entre self.navigationController.navigationItem y self.navigationItem
Respuesta
A UINavigationController
es una subclase de UIViewController
. Como tal, tiene su propia propiedad independiente navigationItem
, que heredó de UIViewController
. Debe ignorar esta propiedad, ya que solo se usaría si insertara un controlador de navegación dentro de otro controlador de navegación (algo que nadie en su sano juicio haría alguna vez).
De la documentación de UIViewController+UINavigationControllerItem
, véase más adelante, debemos utilizar la propiedad navigationItem
directamente en el controlador de vista:
// Created on-demand so that a view controller may customize its navigation appearance.
@property(nonatomic,readonly,strong) UINavigationItem *navigationItem;
UINavigationController
también tiene un navigationItem
propiedad ya que está heredando de UIViewController
, pero estableciendo que ganó' t afecta las propiedades de navegación del controlador de vista.
Desde una prueba rápida, podemos ver que estos elementos de navegación no son iguales, ya sea:
(lldb) po self.navigationItem
<UINavigationItem: 0x7f865c99ec50>
(lldb) expr -- @import UIKit
(lldb) po self.navigationController.navigationItem
<UINavigationItem: 0x7f865c811740>
- 1. ¿Cuál es la diferencia entre UINavigationController y UINavigationItem
- 2. MySQL: diferencia entre ', `,' y"
- 3. Diferencia entre objeto y *?
- 4. Diferencia entre. y #
- 5. ¿Diferencia entre == y caso?
- 6. La diferencia entre $ * y $ @
- 7. Diferencia entre & y &
- 8. VBA: Diferencia entre y y +
- 9. Diferencia entre -Wconversion entre gcc y g ++
- 10. Diferencia entre subprocess.Popen y os.system
- 11. Diferencia entre decimal y decimal
- 12. ¿Diferencia entre trazo y relleno?
- 13. Diferencia entre interrupción y eventos
- 14. Diferencia entre netTcpContextBinding y netTcpBinding
- 15. ¿Diferencia entre brújula y sass?
- 16. Diferencia entre "__method__" y "método"
- 17. Diferencia entre Mealy y Moore
- 18. Diferencia entre HashSet y HashMap?
- 19. diferencia entre ajax y enviar
- 20. Diferencia entre sistema y shell_exec
- 21. Diferencia entre Style y ControlTemplate
- 22. Diferencia entre relativo y absoluto
- 23. Diferencia entre window.location.href y top.location.href
- 24. Diferencia entre strncpy y memcpy?
- 25. diferencia entre SDL y GLUT
- 26. Diferencia entre Javascript y PHP
- 27. Diferencia entre Session y HttpContext.Current.Session
- 28. diferencia entre px y em
- 29. Diferencia entre sqrtf y sqrtf
- 30. ¿Diferencia entre Keychain y NSUserDefault?