2010-06-01 33 views
5

Estoy un poco curioso, tengo una clase de controlador de vista y un NIB/XIB (ambos se llaman "MapViewController") Si hago lo siguiente, carga el NIB con el nombre correspondiente.y cargando archivos NIB/XIB?

-(id)init { 
    self = [super initWithNibName:@"MapViewController" bundle:nil]; 
    if(self) { 
     do things ... 
    } 
    return self; 
} 

si por el contrario me basta con especificar [súper init] Xcode sólo tiene que buscar una ONI que coincida con el nombre del controlador, es que la forma en que esto está funcionando?

-(id)init { 
    self = [super init]; 
    if(self) { 
     do things ... 
    } 
    return self; 
} 

aplausos Gary.

Respuesta

7

De la documentación:

Si especifica cero para el parámetro nibName y no reemplazar el método loadView en su subclase personalizada , la vista predeterminada del controlador comportamiento es buscar un archivo semilla cuyo nombre (sin la extensión .nib ) coincide con el nombre de su clase de controlador de vista . Si encuentra uno, el nombre de la clase se convierte en el valor de la propiedad nibName, lo que se traduce en el archivo correspondiente plumín siendo asociado a este controlador de vista.

+0

Gracias, lo veo ahora, estaba buscando en init y perderse. – fuzzygoat

1

qué Xcode sólo tiene que buscar una ONI que coincide con el nombre del controlador de

Más o menos:

Si especifica cero para el parámetro nibName y no lo hace reemplazar el método loadView en su subclase personalizada , la vista predeterminada del controlador comportamiento es buscar una plumín de archivo cuyo nombre (sin la extensión .nib ) coincide con el nombre de su vista de clase controlador. Si encuentra uno, el nombre de la clase se convierte en el valor de la propiedad nibName, lo que se traduce en el archivo correspondiente plumín siendo asociado a este controlador de vista.

3

Sí, en este caso particular, funcionará. De acuerdo con la UIViewController, llamando init es similar a llamar initWithNibName:bundle: con nil como nombre de semilla:

Si especifica cero para el parámetro nibName y no reemplaza el método loadView en su subclase personalizada , la vista predeterminada controlador de comportamiento es la búsqueda de un archivo semilla cuyo nombre (sin la extensión .nib ) coincide con el nombre de su vista de clase controlador. Si encuentra uno, el nombre de la clase se convierte en el valor de la propiedad nibName, lo que se traduce en el archivo correspondiente plumín siendo asociado a este controlador de vista.