sdk de iPhone 2.x - referencia a un viewController dentro de otro viewController que aparece como nulo
-
03-07-2019 - |
Pregunta
Estoy tratando de dar a una instancia recién creada de un controlador de vista de selector personalizado una referencia a otro viewController como esto (esto está dentro de un selector desde una instancia de ponceViewController que se llama después de tocar una fila de tableView) ...
- (IBAction)rowTapped:(id)sender {
TimerPickerViewController *viewController = [[TimerPickerViewController alloc] initWithNibName:@"TimerPickerView" bundle:nil]
self.timerPickerViewController = viewController;
timerPickerViewController.ponceViewController = self.rootViewController;
[viewController release];
}
Luego, dentro de mi instancia de timerPickerViewController tengo:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
...
// ponceViewController is null here
...
}
}
El timerPickerViewController se muestra bien, e incluso puedo acceder a cosas desde ponceViewController después de tocar mi " Listo " botón, pero estoy sintetizando ponceViewController y está en mi encabezado y todo, y parece que no puedo acceder a él dentro del método initWithNibName del timerPickerViewController: siempre es nulo. :( ¿Alguien tiene alguna idea?
Editar: También debo mencionar que ponceViewController es nulo dentro del método viewDidLoad del timerPickerViewController también ...
- (void)viewDidLoad {
... no such thing as ponceViewController here! ...
}
Solución
Así que lo arreglé eliminando completamente initWithNibName: (NSString *) nibNameOrNil bundle: (NSBundle *) nibBundleOrNil
del timerPickerViewController y usé viewDidLoad
en su lugar. Todo parece funcionar bien. Creo que el problema fue que la propiedad aún no estaba disponible al hacer referencia dentro de initWithNibName
. Espero que ayude a alguien más.