Pregunta

En el iPhone OS 3.0, puede configurar los elementos de la barra de un UINavigationController utilizando el método setToolbarItems:animated:. Sin embargo, esto requiere que se pasa en una gran variedad de UIToolbarItems. Aunque podría crear estos elementos mediante programación la barra de herramientas, prefiero crearlos en Interface Builder si es posible.

Con esto en mente, he creado un UIToolbar en "MyGreatViewController.xib" y han poblado con los elementos de la barra buscados. Luego, en "MyGreatViewController.m", consigo los elementos de la barra de herramientas y pasarlos a setToolbarItems:animated::

- (void)viewDidLoad {
    [super viewDidLoad];
    [self setToolbarItems: [toolbar items]];
}

... donde toolbar es un IBOutlet refiriéndose a la UIToolbar.

Es este un buen enfoque? ¿Hay una mejor manera de lograr esto? ¿Debo crear los elementos de programación?

¿Fue útil?

Solución

Es una manera perfectamente aceptable de hacerlo, pero tenga en cuenta que la carga de archivos xib es bastante caro en el iPhone, y bien puede ser más rápido para crear los elementos de la barra programáticamente en su método viewDidLoad.

Otros consejos

No sé si esto está documentado en cualquier lugar, pero me he dado cuenta que en el Interface Builder, si se habilita la barra de herramientas del control de navegación, puede arrastrar elementos de la barra a su controlador de vista, y automágicamente se mostrará en el barra de herramientas de control de navegación.

Por ejemplo, esto es lo que podemos hacer (usando Xcode 3.2 en Snow Leopard):

  1. Archivo-> Nuevo proyecto .... Seleccione Aplicación basada en la navegación y crear el proyecto.
  2. MainWindow.xib Abrir en Interface Builder.
  3. Seleccione el regulador de la navegación, y en el inspector de atributos, marca la casilla "Barra de herramientas Muestra". Esto hará que aparezca un objeto de barra de herramientas.
  4. Arrastre una barra de botones elemento de la biblioteca a la barra de herramientas. Aparecerá en la barra de herramientas. Si marca la jerarquía en la SEMILLA, verá que este nuevo artículo es un hijo de la RootViewController.

Parece que ningún artículo en su Bar añadidos como hijos de un elemento de navegación se mostrarán en la barra de navegación, y cualquier elemento botón de la barra añadidos como hijos del controlador de vista se mostrarán en la barra de herramientas.

(Me encontré con este por accidente. Si alguien puede encontrar documentación para este comportamiento, o cualquier información adicional, me gustaría saberlo.)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top