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?

È stato utile?

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).

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