Conecta UIView en XIB y cárgalo usando View Controller en el tablero Story

Tengo un XYZViewController ( XYZViewController simple en storyboard) que se carga con la vista pnetworkingeterminada. Tengo un tipo XYZView para el que tengo UIView en un file .xib .

En la class XYZViewController, he definido la propiedad para XYZView como un IBOutlet . Lo que es complicado es que no sé cómo conectar esta propiedad al UIViewController en storyboard (o UIVIew en el file .xib) de tal forma que,

  • el IBOutlet está conectado a la UIView derecha
  • la vista en el xib se convierte en una subvista agregada para la vista pnetworkingeterminada del UIViewController.

(Yo bajo la pregunta suena dudoso y / o puede que no tenga la manera correcta de explicarlo, pero eso es lo mejor que pude).

EDITAR: aclaraciones adicionales pueden hacerlo más fácil. No me quiero decir:

 XYZView *xyzView = [[XYZView alloc] initWithFrame...]; 

o

 [self.view addSubview:xyzView]; 

Tal vez eso ayuda.

De acuerdo, de lo que te digo tienes lo siguiente …

XYZViewController El código de esto está en los files XYZViewController.h and .m .

Un file .storyboard En el file de storyboard, usted tiene un controller de vista que ha establecido la subclass en XYZViewController .

Un file .xib En el file xib, tiene una sola vista que ha definido como la subclass XYZView .

¿Derecha?

Supongo que lo que has hecho es lo siguiente …

En el file .xib, ha presentado el XYZView y colocado tags, botones, etc. en él.

El storyboard crea el controller de vista. Pero ahora quieres adjuntar las tags y los botones.

¿Derecha?

Si todo esto es correcto, entonces tienes un par de opciones.

La opción más fácil

Soltar el file xib. A less que XYZView se use en varios lugares de la aplicación (es decir, dentro de diferentes controlleres de vista), entonces debería estar haciendo todo ese layout en el guión gráfico. Agregue los botones y tags al XYZViewController en el guión gráfico.

Esto le permitirá conectar los IBOutlets e IBActions y todo funcionará porque el storyboard está creando y luego configurando las salidas y acciones.

Opción siguiente

Debido a que ha creado la vista en un file xib, debe cargarlo desde ese file xib en el código y luego agregarlo a la vista del controller.

Algo como…

 - (void)viewDidLoad { [super viewDidLoad]; self.xyzView = [[[NSBundle mainBundle] loadNibNamed:@"XYZView" owner:self options:nil] objectAtIndex:0]; [self.view addSubview:xyzView]; } 

Entonces puedes hacer cosas como …

 self.xyzView.someLabel.text = @"This is the text"; 

Aún no podrá conectar salidas y acciones, pero eso se debe a que el controller de vista no está siendo creado por el xib. Está siendo creado por el guión gráfico.

Esto puede ser todo desorderado. Realmente solo recomendaría crear una vista en un xib separado si es algo que se reutiliza una y otra vez (como una vista de calificación de 5 estrellas o algo así).

Lo que absolutamente no puedes hacer

Bien, creo que he pensado en lo que estás haciendo.

En el guión gráfico, configuró la subclass de la vista como XYZView y espera que recoja las tags y los botones, etc. que haya definido en el file XYZView para XYZView .

Esto absolutamente no funcionará nunca.

El storyboard y el xib son objects completamente separados. Si desea usarlos juntos, el código implica cargar una vista desde una punta y luego agregarla a un controller de vista creado en un storyboard.