Perché initWithRootViewController non mantiene la classe viewController che vi viene passata?

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

  •  20-08-2019
  •  | 
  •  

Domanda

Ho un viewController personalizzato chiamato SourceListViewController e lo sto aggiungendo in un UINavigationController, la cui vista viene quindi aggiunta alla finestra dell'app per iPhone. Dopo aver passato SourceListViewController a UINavigationController, rilascio sourceListViewController.

SourceListViewController *sourceListVC = [[SourceListViewController alloc] initWithNibName:@"SourceListViewController" bundle:nil];
UINavigationController *navigationController = [[[UINavigationController alloc] initWithRootViewController:sourceListVC] autorelease];
[sourceListVC release];

Quando lo faccio, l'app si arresta in modo anomalo dopo che la vista viene caricata sul telefono. Quando ho commentato l'ultima riga, l'app funziona bene. InitWithRootViewController non dovrebbe conservare la copia di sourceListVC?

È stato utile?

Soluzione

Rilasci di navigazione con controllo automatico. Quindi, se navigationController viene rilasciato automaticamente (cosa che probabilmente accadrà nel prossimo runloop), allora anche SourceListVC.

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