2012-01-07 11 views

Respuesta

127

El inicializador utilizado es initWithCoder:

- (id)initWithCoder:(NSCoder *)decoder 

A continuación, después usted también recibirá un mensaje de awakeFromNib.

+3

¿Soy el único al que le resulta extraño que el init (?) Predeterminado no se llame desde initWithCoder? – brianestey

+2

No, no es el init designado, sino que debe llamar a otro init con (generalmente) más parámetros, que luego llamarían a [super init]. En este caso, parece que initWithCoder es el init designado – MrJD

+7

initWithCoder: es un inicializador designado de cualquier clase que implemente NSCoding. –

5

Creo que es awakeFromNib

+0

awakeFromNib se vuelve a llamar también, ya que nuestra 'UIViewControllers' están siendo "enlatados" en su archivo .storyboard (el equivalente de las "viejas" marcas) – Besi

+0

La diferencia (que puede ser importante) entre 'awakeFromNib' y los métodos' init * 'es que devuelven una instancia,' awakeFromNib' no. – Matthew

0

Es la - (id)initWithCoder:(NSCoder *)decoder

Así que si usted tiene que hacer un inicio personalizada, digamos que el uso de una costumbre Pager controlador que tiene que hacer allí como

- (id)initWithCoder:(NSCoder *)decoder { 

     self = [super initWithCoder:decoder]; 
     return [self initWithViewControllers:@[self.playerViewController, self.categoriesViewController] 
        andTitles:@[@"Player",@"Categories"]]; 
    } 
Cuestiones relacionadas