Come posso caricare un UIViewController da un NIB con segnaposto?
-
06-07-2019 - |
Domanda
Ho un UIViewController che voglio caricare da un NIB in cui è definito un oggetto proxy (segnaposto). La prima volta che lo carico, passo attraverso questo rigamarole:
MyViewController *screen = [[MyViewController alloc] init];
NSDictionary *proxyDict = [NSDictionary dictionaryWithObject:myObject forKey:@"MyProxy"];
NSDictionary *optionsDict = [NSDictionary dictionaryWithObject:proxyDict forKey:UINibExternalObjects];
[[NSBundle mainBundle] loadNibNamed:@"MyViewController" owner:screen options:optionsDict];
Quindi, questo imposta l'oggetto proxy dichiarato come " MyProxy " nel file NIB per puntare all'oggetto myObject
che esiste già. Questo funziona molto.
Ora, se vado su una schermata diversa e innesco un avviso di memoria insufficiente, scarica la vista. quando torno a quella schermata, esegue il ricaricamento automatico della vista, che non ha spazio per un dizionario di opzioni definito manualmente per l'impostazione di oggetti proxy, quindi si arresta in modo anomalo nel tentativo di trovare un oggetto da collegare " MyProxy " a.
Come posso farlo funzionare?
Soluzione 2
Non ho mai trovato una soluzione per questo, ho inviato una richiesta di funzionalità, non ho avuto risposta.
Altri suggerimenti
Che ne dici di configurare l'oggetto proxy in -loadView o -viewDidLoad. Verranno chiamati ogni volta che la vista viene caricata / ricaricata (insieme a -viewDidUnload, dopo una condizione di memoria insufficiente).