Pregunta

tengo una vista principal con un controlador asociado. Tengo algunas barras de herramientas bastante complicadas que tengo que cambiar de entrada y salida en función de la interacción del usuario.

Para simplificar las cosas me las arreglo las barras de herramientas con mi controlador principal punto de vista, en lugar de tener todo tipo de dependencias entrelazadas o cadenas de delegados muy profundas.

De todos modos, ¿cómo puedo tener múltiples vistas en una xib e inicializar correctamente? Al igual que si quiero mostrar uno de mis puntos de vista personalizados en el centro de la pantalla, ¿cómo iba a hacer eso?

Alternativamente, si separo las vistas en múltiples xibs, ¿cómo puedo tenerlos referencia al mismo objeto controlador por sus IBOutlets / IBActions?

¿Fue útil?

Solución

  

De todos modos, ¿cómo puedo tener varias vistas   en una xib y inicializarlas   ¿correctamente? Al igual que si quiero mostrar   uno de mis puntos de vista personalizados en el centro   de la pantalla, ¿cómo iba a hacer eso?

Puede tener tantos como desee UIViews en su xib. Por lo general, usted va a hacer la vista una "primaria" - el que está conectado a la propiedad vista del propietario del archivo (es decir, el controlador de vista) - y el resto puede sentarse en el xib en el mismo nivel. Puede engancharlos hasta otras propiedades en el controlador de vista también.

Se podría hacer que estos puntos de vista como subvistas de la vista principal. (Pocos, eso es un montón de vista). Digamos que usted tiene dos puntos de vista, y FooView BarView. ¿Quieres FooView a estar presente en el inicio. Así que acaba de establecer BarView que se oculta en el IB. A continuación, el controlador de vista podría ser algo como esto:

@interface MyViewController : UIViewController
{
    FooView* fooView;
    BarView* barView;
    ...
}
...
@property (nonatomic, retain) IBOutlet FooView* fooView;
@property (nonatomic, retain) IBOutlet BarView* barView;
...

A continuación, dentro de su código, cuando se quiere cambiar las vistas, sólo tiene que utilizar el método setHidden: para ocultar uno y mostrar la otra.

  

Alternativamente, si separo las vistas   en múltiples xibs, ¿cómo puedo tener   ellos hacen referencia al mismo controlador   objeto por sus IBOutlets / IBActions?

Puede tener otros xibs que comparten el mismo controlador de vista. Yo he hecho un montón a mí mismo. Sólo hay que establecer el propietario del archivo a la clase apropiada.

Otros consejos

En realidad es muy simple. Usted acaba de crear una nueva visión a nivel de la raíz en su archivo XI ter y crear un IBOutlet para esta opinión en su controlador principal de vista.

En cuanto a vistas de carga directamente desde XI ter del, que comparten el mismo controlador de vista, eso es un poco más descuidado .. que esencialmente había necesidad de recorrer los elementos en el archivo XI ter y encontrar el elemento que está buscando.

Una cosa a destacar de este enfoque es que todos los puntos de vista que éste se inicia cuando cualquiera de los puntos de vista son necesarios.

Si sus puntos de vista son simples esto no podría ser importante, pero si usted tiene puntos de vista complejos, esto podría hacer que su aplicación lento para cargar.

Si las vistas son algo complejo, que debe dividir en diferentes archivos .xib. En este caso, el padre tendría UIViewController IBOutlets a las otras subclases UIViewController en lugar de IBOutlets a UIViews. Los controladores de vista manejarán automáticamente el lazy-loading de sus respectivos puntos de vista.

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