¿Cómo se debe crear los elementos de subvista de la barra de herramientas UINavigation Interface Builder?

Esta publicación de blog hace la misma pregunta que tengo: ¿Cómo se pueden manejar visualmente los elementos de la barra de herramientas en Interface Builder? Seguro que se puede usar esta técnica para la vista de nivel superior, pero ¿qué pasa con otras vistas? ¿No puedo darle a mi compañero de layout la capacidad de editar los elementos de la barra de herramientas directamente en una vista así sin el hack de crear un marcador de position UIToolbar que nunca se haya utilizado?

Así es como lo hice. @interface esta propiedad a mi controller @interface :

 @property (nonatomic, strong) IBOutletCollection(UIBarButtonItem) NSArray *toolbarItems; 

En la @implementation , agregué:

 @synthesize toolbarItems; 

Luego, en la punta, tuve todos los UIBarButtonItem s en una UIToolbar . En el browser "Objetos", los seleccioné a todos, luego los sacé de la Barra UITool, para que no tengan visión de que son parte. Luego, para cada uno, hice clic con el button derecho y arrastré el círculo al lado de "Nueva colección de salida de reference" a "Propietario de file" y los toolbarItems seleccionados de la toolbarItems de toolbarItems en la window emergente resultante. Y ahora, todos los UIBarButtonItems aparecen mágicamente en UIToolbar, no hace falta más trabajo.

Por desgracia, esto no es ideal. Ahora que los UIBarButtonItems no están en una UIToolbar de trabajo de UIToolbar en el plumín, son un constructor de interfaz completamente invisible. Todavía están en el browser "Objetos", pero uno no puede ver cómo son. Esto parece un error desafortunado (archivado como rdar: // 11234043 ).

El otro problema es que no hay forma de ver el order de los artículos en IBOutletCollection , hasta donde yo sé. Los agregué en el order que quiero que se muestren, de derecha a izquierda, pero será un PITA si alguna vez necesito cambiar el pedido o agregar uno nuevo en algún lugar del medio.

Aquí está la esperanza de que Apple agregue una mejor compatibilidad con IBOutletCollection al constructor de interfaz, con contenedores visibles de algún tipo.