2011-03-22 21 views
5

Si creo un UIView personalizado en ChildView.xib, ¿cómo hago referencia a eso desde MainWindow.xib?Cómo referenciar archivos XIB de un XIB principal

Intenté arrastrar UIView a MainWindow.xib y asociarlo con la misma clase ChildView. Hice al propietario de ChildView.xib un ViewController desde MainWindow.xib y en ChildView.xib, conecté el childView IBOutlet a la vista, pero cuando inicio la aplicación, la vista en ChildView.xib no se carga automáticamente.

¿Esto es posible? En un nivel básico, supongo que estoy preguntando cómo conectar UIViews desde archivos XIB separados a una referencia IBOutlet en algún otro XIB ... como MainWindow.xib.

FWIW, sé cómo hacer esto en el código (instanciando manualmente con NSBundle) pero en este caso, quiero saber cómo hacerlo completamente en IB (Interface Builder).

Respuesta

2

Experimenté un poco con esto y creé una subclase NSViewController con un archivo XIB asociado. Pude cargarlo automáticamente colocando una instancia del objeto NSViewController en el archivo XIB principal, y usé el inspector de Atributos para establecer el "Nombre de la punta" en el nombre del archivo XIB de la subclase NSViewController. Ese archivo XIB también contiene de forma predeterminada un único objeto de vista, que puede personalizar en IB, o establecer en un tipo de subclase de vista personalizada.

Sin embargo, todavía se requiere una línea de código para agregar la vista del controlador de vista a la vista de contenido de la ventana principal. (Hice esto en el delegado)

- (void)applicationDidFinishLaunching:(NSNotification *)aNotification 
{ 
    [[self.window contentView] addSubview:myVC.view]; 
} 

experimentación adicional reveló que el tener una costumbre NSViewController subclase no era necesario, pero aún necesitaba archivo XI ter cargada a ser propiedad de NSViewController.

No vi ninguna forma de vincular una toma de corriente en el XIB principal al objeto de vista en el XIB cargado. Solo pude vincular al objeto controlador de vista en su lugar y luego acceder a la vista personalizada a través de su propiedad de vista.

+0

Gracias Laura. Como has demostrado, he hecho exactamente esto con ViewControllers. Parece extraño que hacer referencia a UIViews en otros XIB no sea obvio. –