iphone 2.x sdk - référence à un viewController dans un autre viewController affiché comme null
-
03-07-2019 - |
Question
J'essaie de donner à une instance nouvellement créée d'un contrôleur de vue de sélecteur personnalisé une référence à un autre viewController similaire à so (cela se trouve à l'intérieur d'un sélecteur d'une instance de ponceViewController appelée après le déclenchement d'une ligne tableView) ...
- (IBAction)rowTapped:(id)sender {
TimerPickerViewController *viewController = [[TimerPickerViewController alloc] initWithNibName:@"TimerPickerView" bundle:nil]
self.timerPickerViewController = viewController;
timerPickerViewController.ponceViewController = self.rootViewController;
[viewController release];
}
Puis, dans mon instance timerPickerViewController, j'ai:
- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
...
// ponceViewController is null here
...
}
}
Le timerPickerViewController s’affiche parfaitement et je peux même accéder à des éléments de ponceViewController après avoir tapé sur "Terminé". bouton, mais je suis en train de synthétiser ponceViewController et cela se trouve dans mon en-tête et tout, et je n'arrive pas à y accéder dans la méthode initWithNibName de timerPickerViewController - elle est toujours nulle. :( Quelqu'un a des idées?
Éditer: Je devrais également mentionner que ponceViewController est nul dans la méthode viewDidLoad de timerPickerViewController ...
- (void)viewDidLoad {
... no such thing as ponceViewController here! ...
}
La solution
J'ai donc résolu le problème en supprimant complètement initWithNibName: (NSString *) ensemble nibNameOrNil: (NSBundle *) nibBundleOrNil
de timerPickerViewController et utilisé à la place viewDidLoad
. Tout semble bien fonctionner. Je pense que le problème était que la propriété n'était pas encore disponible lors de son référencement dans initWithNibName
. J'espère que cela aidera quelqu'un d'autre.