2012-02-08 35 views
8

Quiero una UINavigationBar en la parte superior de mi UIWebView, pero quiero controlar a mano el título, el botón Atrás, lo que hace el botón Atrás, etc. En otras palabras, no quiero presionar ni abrir vistas . Solo quiero cambiar el contenido de UINavigationBar a medida que el usuario hace clic en la vista web.usando UINavigationBar sin UINavigationController

Donde estoy trabajando es que agregué UINavigationBar a mi supervista y logré 44 píxeles de alto. ¿Cómo configuro el título ya que no tengo navigationItem? ¿Cómo puedo configurar un falso botón hacia atrás?

Agradecería cualquier sugerencia. Me doy cuenta de que esto es bastante extraño de lo que estoy haciendo.

Gracias :)

Respuesta

21

La respuesta, si alguien está interesado, está en la referencia de clase de UINavigationBar.

Cuando utiliza una barra de navegación como un objeto independiente, usted es responsable de proporcionar sus contenidos. A diferencia de otros tipos de vistas, , no agrega subvistas a una barra de navegación directamente. En su lugar, utiliza un elemento de navegación (una instancia de la clase UINavigationItem) al especifica qué botones o vistas personalizadas desea mostrar. Un elemento de navegación tiene propiedades para especificar vistas en el centro izquierdo, derecho y de la barra de navegación y para especificar una cadena personalizada de solicitud .

En resumen, use un UINavigationItem y aplíquelo mediante "pushNavigationItem" en la UINavigationBar.

Creé una subclase de UINavigationBar llamada StaticNavigationBar que luego puedo cargar con cualquier estado colocando el UINavigationItem apropiado en él. Gracias por todas sus respuestas, personas.

+4

+1 amigo ... buena respuesta –

+0

¿Por qué tienes que subclase? – David

+0

Realmente no eres @David; de hecho, en estos días prefiero la composición a la herencia. –

-1

Usted puede tener que UINavigationBar como una salida y luego se puede manupulate, tal como desee. Por lo tanto, no tiene que referirse al elemento de navegación de alguien. Será un objeto independiente (tipo de) en su vista.

+0

Tengo mi UINavigationBar en la vista. Ahora, ¿a qué llamo para establecer el título? Añadir un botón de retroceso? –

+1

UINavigationBar tiene una propiedad backItem. En lo que respecta al título, deberás hacerlo a través de la propiedad del elemento de navegación, que también se puede agregar en IB o Storyboard como una salida. El elemento de navegación tiene propiedad de título. –

-1

Si no quiere la barra de navegación como está, tendrá que hacer la suya. si estás de acuerdo con las animaciones integradas para empujar y abrir elementos (no confundas con push/pop de viewcontrollers) a la barra, entonces configura tu UINavigationBarDelegate y usa sus métodos para controlar cómo cosas push/pop, etc.

+0

Me gusta el UINavigationBar cómo se ve de forma nativa. Quiero saber cómo configurar el título y el botón de retroceso programáticamente en ausencia de un controlador de uinavigation. Hasta ahora solo he podido agregarlo a la vista y establecer el tinte. No se pueden ver los métodos para configurar el título o agregar botones atrás. –

Cuestiones relacionadas