Tengo una aplicación que se ejecuta en un UINavigationController. Ahora me gustaría añadir un UIToolbar elemento a la parte inferior de cada pantalla. La Barra de herramientas en la parte inferior debe ser personalizable para el ViewController que se está mostrando actualmente. Mi primera idea fue simplemente para agregar la barra de herramientas a la navigationController vista y de la etiqueta, en el viewController pensé que sería capaz de recuperar la UIToolbar elemento. Tengo el siguiente código:

En mi AppDelegate:

//Get instance of Toolbar  (navController is an instance of UINavigationController and TOOLBAR_TAG a constant)
UIToolbar *toolbar = [[UIToolbar alloc] initWithFrame:CGRectMake(0, 440, 320, 40)];
toolbar.tag = TOOLBAR_TAG;
[navController.view addSubview:toolbar];

En mi viewController he intentado esto:

UIToolbar *toolbar = [self.navigationController.view viewWithTag:TOOLBAR_TAG];
toolbar.barStyle = UIBarStyleBlack;

Sin embargo, este me da un error diciendo que la barra de herramientas en mi caso es un «UILayoutContainerView» objeto, no un UIToolbar objeto. Por lo tanto, esta idea parece ser un callejón sin salida.

¿Cómo a los demás a resolver este problema?

OriginalEl autor Robin | 2010-02-22

3 Comentarios

  1. 42

    UINavigationController ya tiene una barra de herramientas. Sólo uso

    [self.navigationController setToolbarHidden:NO];

    en la parte más alta de la vista y controlador de

    [self setToolbarItems:items];

    en todos su punto de vista de los controladores, donde los elementos es un NSArray de que el controlador de vista de los elementos de barra de herramientas.

    EDICIÓN: en cuanto a por qué la solución no está funcionando: su TOOLBAR_TAG es, probablemente, no la única, es por eso que usted está recibiendo otro subvista. Pero como ya he dicho, debería utilice la barra de herramientas de todos modos.

    Wow que es un servicio que no me esperaba, incluso he buscado en la documentación pero no encuentro esto. Muy bueno, gracias!
    eres bienvenido. =) es en la UINavigationController documentación, btw: developer.apple.com/iphone/library/documentation/UIKit/…
    Usted puede anular su UINavigationController pushController método para evitar el copiar/pegar y fijar los elementos de barra de herramientas aquí.
    cómo hacer que funcione para el iPad? Yo estoy usando el SplitView de navegación y control. la barra de herramientas nunca se muestra en el iPad, pero no en el iPhone. Hay algo mal estoy haciendo?

    OriginalEl autor Can Berk Güder

  2. 1

    Mostrar fácilmente el UINavigationController parte inferior de la barra de herramientas, puede hacer clic en la opción «Mostrar Barra de herramientas» casilla de verificación, el cual es accesible desde el inspector con «Navegación » Controlador» del objeto seleccionado. Espero que esto pueda ayudar 🙂

    OriginalEl autor FredericK

  3. 0

    Desde una perspectiva de diseño no te lo recomiendo a MENOS que sepa la barra de herramientas estará presente para cada vista en la pila. El segundo de empezar a » mostrar/ocultar la barra de herramientas para diferentes vistas de la pila que va a ver que la animación (barra de herramientas de diapositivas in/out con vistas) no animar como se espera.

    Si usted necesita barras de herramientas específicas planteadas en los puntos de vista, desde la barra de herramientas contextual a la vista, no a la nav de la pila como un todo.

    OriginalEl autor eddit

Dejar respuesta

Please enter your comment!
Please enter your name here