iphone 2.x sdk - riferimento a un viewController all'interno di un altro viewController visualizzato come null

StackOverflow https://stackoverflow.com/questions/815422

Domanda

Sto cercando di fornire a un'istanza appena creata di un controller di visualizzazione picker personalizzato un riferimento a un'altra viewController in questo modo (si trova all'interno di un selettore da un'istanza ponceViewController che viene chiamata dopo aver toccato una riga tableView) ...


- (IBAction)rowTapped:(id)sender {
  TimerPickerViewController *viewController = [[TimerPickerViewController alloc] initWithNibName:@"TimerPickerView" bundle:nil]
  self.timerPickerViewController = viewController;
  timerPickerViewController.ponceViewController = self.rootViewController;
  [viewController release];
}

Quindi nella mia istanza timerPickerViewController ho:

- (id)initWithNibName:(NSString *)nibNameOrNil bundle:(NSBundle *)nibBundleOrNil {
  if (self = [super initWithNibName:nibNameOrNil bundle:nibBundleOrNil]) {
    ...
    // ponceViewController is null here
    ... 
  }
}

Il timerPickerViewController viene visualizzato correttamente, e posso anche accedere alle cose da ponceViewController dopo aver toccato " Fatto " pulsante, ma sto sintetizzando ponceViewController ed è nella mia intestazione e tutto il resto, e non riesco ad accedervi all'interno del metodo initWithNibName di TimerPickerViewController - è sempre nullo. :( Qualcuno ha qualche idea?

Modifica: dovrei anche menzionare che ponceViewController è nullo nel metodo viewDidLoad di TimerPickerViewController anche ...

- (void)viewDidLoad {
  ... no such thing as ponceViewController here! ...
}
È stato utile?

Soluzione

Quindi l'ho risolto rimuovendo completamente initWithNibName: (NSString *) bundle nibNameOrNil: (NSBundle *) nibBundleOrNil da timerPickerViewController e invece ho usato viewDidLoad . Tutto sembra funzionare bene. Penso che il problema fosse che la proprietà non era ancora disponibile quando ci si riferiva all'interno di initWithNibName . Spero che aiuti qualcun altro.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top