2009-11-09 10 views
15

me he dado cuenta de que hay dos maneras diferentes para cargar archivos xib plumillas /:loadNibNamed de initWithNibName VS NSBundle

  1. vía initWithNibName:bundle: método de la UIView
  2. método
  3. de NSBundle loadNibNamed:owner:options:.

¿Alguien puede explicar las diferencias entre estos dos y cuándo es más apropiado usar uno sobre el otro y en qué circunstancias?

Por ejemplo, si estoy cargando una vista de encabezado de sección de tabla personalizada desde un archivo nib en el método tableView: viewForHeaderInSection: ¿cuál usaría?

O, si estuviera cargando una celda de vista de tabla personalizada desde un archivo de punta, ¿cuál usaría?

Respuesta

10

NSBundle Los métodos son la API genérica que se utiliza para desarchivar los NIB. Ellos hacen el trabajo real (junto con NSNib).

UIViewController ‘s initWithNibName:bundle: por otro lado es una manera de inicializar un controlador de vista que (puede) cargar su vista desde una punta. El método no carga el plumín, solo toma nota del nombre. El controlador carga la punta lentamente cuando se solicita la vista.

No conozco ninguna carga de plumillas en UIView.

7

Si el controlador de vista de su encabezado contiene IBOutlet a cualquier campo en el archivo de punta, será mejor que cargue el archivo de punta en lugar de llamar a initWithNib. En la vista del controlador del archivo de encabezado, modifique la instrucción de inicio de la siguiente manera. La instrucción predeterminada está comentada.
Al hacerlo, podrá acceder a los campos en el archivo de punta usando IBoutlets.

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil { 
    //self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
    // Custom initialization. 
if ([[NSBundle mainBundle] loadNibNamed:@"NibFile" owner:self options:nil]) { 

} 

return self; 

}

+2

Votaría usted hasta 100 si pudiera. Tu respuesta realmente me ayudó: resolvió 2 problemas. También necesitaba incluir un NSDictionary con las opciones. ¡¡¡¡Gracias!!!! –

Cuestiones relacionadas