2012-04-26 10 views
12

No entiendo cuál es la diferencia entre self.navigationcontroller.navigationitem y self.navigationitem he aplicación basada en la navegación y en viewDidLoad método en el rootViewController de navigationController que establecer el NavigationItem titleview la imagen personalizada mediante el uso de este código¿Cuál es la diferencia entre UINavigationController y UINavigationItem

UIImageView* titleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]]; 
self.navigationItem.titleView =titleImage; 

por cierto si trato de cambiar titleview de esta manera

UIImageView* titleImage=[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]]; 
self.navigationcontroller.navigationItem.titleView =titleImage; 

no sucedió nada. , y cuando navigationcontroller empujó la otra vista a la pila de la titleview de navigationitem se borra y conjuntos de referencia a cero, y También he notado que las referencias de self.navigationcontroller.navigationitem y self.navigationitem no son los mismos.

+0

Por favor enviar su pregunta en el formato adecuado para que el lector puede obtener idea de lo que están pidiendo y le dará la respuesta –

Respuesta

8

Creo que lo que está preguntando es lo siguiente: self.navigationController.navigationItem y self.navigationItem. Estoy ignorando el resto de la pregunta, ya que no es realmente esencial para la pregunta.

Por lo que entiendo self.navigationController.navigationItem es inútil ya que es el acceso a elemento de navegación del mando de navegación (es decir, su RootViewController) Qué usted realmente desea es self.navigationItem, elemento de navegación del controlador de vista, porque eso es lo que en esencia va a aparecer en su controlador de vista.

UINavigationController es una subclase de UIViewController así que self.navigationController.navigationItem es solo un método de propagación de subclases. No hace nada positivo (al menos en mi experiencia).

Editar: Lea this para una mayor aclaración.

+0

del controlador de vista de ese caso, ¿por qué el elemento self.navigationitem en viewcontrollers de diferencia no es el mismo? – taffarel

+0

la palabra "self" ya debería decirle que está hablando de cada uno de los viewController por separado. No debería ser lo mismo, ya que navigationItem es una propiedad de ViewController. Nunca dije que fueran iguales, de hecho dije que siempre son para los suyos. – Byte

1

Son diferentes. Si agrega dinámicamente UINavigationController, usa self.navigationController.navigationItem.

Por favor aclare mejor su pregunta.

+0

Esto es incorrecto, incluso si dinámicamente crear una 'UINavigationController', debe acceder' navigationItem' – Zorayr

Cuestiones relacionadas