2012-10-25 2 views
6

Ho uno scenario in cui presento un controller di visualizzazione modale dal rootViewController della finestra principale. Mentre carica il contenuto di questa modale, passo a un'altra finestra di caricamento che rendo visibile e visibile.iOS 5 UIWindow makeKeyAndVisible chiude modale

Questa finestra funge da indicatore di caricamento e non consente all'utente di interagire con l'app. Al termine del caricamento, torno alla finestra principale rendendola visibile e chiave. Quando eseguo questa operazione, la modale viene chiusa forzatamente e l'app non è più in grado di presentare le modali.

È interessante notare che se eseguo [UIWindow makeKeyWindow] quando si passa alla finestra principale, non ci sono problemi. [UIWindow makeKeyAndVisible] è ciò che sta causando il problema. [UIWindow makeKeyWindow] è un'alternativa accettabile?

Questo è solo iOS 5. Nessun problema in iOS 6. Non sto supportando iOS 4. Qualcuno sa cosa potrebbe accadere qui?

+0

non si dovrebbe usare più di una finestra, ad eccezione di altri display come VGA out – Bastian

+0

Sto vedendo questo stesso comportamento. Hai appena deciso di usare makeKeyWindow e tutto è a posto? – strawtarget

+0

Bastian, saresti in grado di approfondire il motivo per cui non è consigliabile utilizzare più di una finestra. Non vedo nulla nei documenti in cui si afferma che un'app deve o deve avere solo una finestra. Il riferimento alla classe UIWindow afferma: "A meno che un'app non possa visualizzare il contenuto su uno schermo di un dispositivo esterno, un'app ha solo una finestra." –

risposta

6

ho avuto lo stesso comportamento, e la documentazione afferma che makeKeyAndVisible metodo è un metodo comodo mi sembra legittimo per sostituire makeKeyAndVisible chiamata con il codice di lavoro:

[window makeKeyWindow]; 
window.hidden = NO; 

Non hanno idea di ciò che è sbagliato, ma sembra un insetto.

+0

Grazie per la risposta. Ho tentato quanto sopra e tutto sembra a posto! –

0

È sicuramente un bug nell'implementazione di iOS 5 UIWindow. Ho affrontato questo strano comportamento e la risposta di Aleksey è la strada da percorrere.