2011-06-06 40 views
5

Necesito pasar algunos valores a un nuevo objeto viewcontroller mientras crea desde un método en otra clase viewcontroller para poder inicializar los valores en (id) initWithNibName Puedo cargar esos valores en el método viewdidLoad.Parámetro que pasa con initWithNibName:

lo que quiero saber es cómo puedo pasar los valores (parámetros) al constructor (initWithNibName) de un nuevo objeto viewcontrollor como constructor de la sobrecarga en Java dame un poco de ejemplo de código simplemente mostrando cómo initWithNibName llamado con parámetros adicionales y cómo recuperar en el recién creado objeto Gracias ...


respuesta


esta es la forma en que resolver el problema "la observación es un ingenio objeto h atributos" en ViewControllor.h puse

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil set:(Observation *)observation; 

en el archivo ViewControllor.m puse

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil set:(Observation *)observation{ 
self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]; 
if (self) { 
    // Custom initialization on passed parameter observation object   
    draftObservation = observation; 
} 
return self; 

}

entonces yo lo llamo así en otra clase

ObsevationListView *obsevationListView = [[ObservationViewControllor alloc] 
              initWithNibName:@"ObservationViewControllor" 
              bundle:nil set:observer]; 
[self.navigationController pushViewController:obsevationListView animated:YES]; 

funciona bien. Me alegro si alguien obtener ayuda de este

+0

muy, muy bien ... me quería exactamente esto ... Gracias una tonelada. – viral

Respuesta

7

Debe crear otra inicializador en su clase, algo así como

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil andParam:(id)aParam { 
... 
self.param = aParam; 
} 
+0

Y no se olvide de declarar ese inicializador en su .h (upvotted) – Jorge

+0

También su primera línea en el lado que el inicializador debe ser: 'self = [self initWithNibName: nibNameOrNil bundle: nibBundleOrNil];' para la inicialización adecuada. – JeroenEijkhof

+0

Gracias chicos, lo hice con su ayuda. crear otro inicializador y pasar el objeto con datos y cargar esos datos a los campos en el método viewDidLoad –

0

Otra solución es tener una propiedad para ese parámetro y configurarlo, ya sea antes o después de llamar usando el siguiente código:

initWithNibName:bundle:

Cuestiones relacionadas