2012-02-09 7 views
16

Noto que "- (id) init" en ViewController no se ejecuta cuando se usa el guión gráfico. ¿Hay algún otro método que pueda reemplazar a init, o no hay fuerza para iniciar el disparo?"- (id) init" no se activa en ViewController cuando se utiliza el guión gráfico

+2

¿Qué estás tratando de hacer? Hay varios otros métodos: '-initWithNibName: bundle:', '-viewDidLoad',' -viewDidAppear: ', etc. Dependiendo de lo que quieras hacer, uno de ellos puede ser una mejor opción. – user1118321

Respuesta

37

tratan de utilizar

- (id)initWithCoder:(NSCoder*)aDecoder 
{ 
    if(self = [super initWithCoder:aDecoder]) 
{ 
     // Do something 
    } 
    return self; 
} 
+1

Tengo la impresión de que el motivo por el que initWithNibName no se llama es porque no usa un archivo nib con guiones gráficos. Gracias @NeverBe, initWithCoder también funcionó para mí. – Ant

+0

+1 para @Ant - el código en la respuesta es la solución correcta, pero se perdió la explicación, que luego se aclaró. –

3

- (id)initWithNibName:(NSString *)nibName bundle:(NSBundle *)nibBundle se llama en su lugar.

Como indica el comentario anterior, debe decidir si puede haber un método más apropiado para anular. Tenga en cuenta que la vista aún no se ha cargado en el método initWithNibName, por lo que no intente cambiar nada allí.

Cuestiones relacionadas