2013-05-17 12 views
8

mi presentano vista modale che è un controller di navigazione:dismissViewControllerAnimated risultati in schermo vuoto

UINavigationController *nvc = [[UINavigationController alloc] initWithRootViewController:photoEditVC]; 
[self presentViewController:nvc animated:YES completion:NULL]; 

Una volta che ho finito con la vista modale, all'interno del controller visibile di NVC:

[self.presentingViewController dismissViewControllerAnimated:YES completion:NULL]; 

Risultato Blank Screen

Qualche idea del perché questo potrebbe accadere?

UPDATE: ho capito questo avviene solo quando prima di respingere la vista, aggiorna un valore in una classe singleton comune, che utilizzo per tenere traccia degli eventi.

[[SAStatus current] setValue:@(ua_photoSubmitted) forKeyPath:@"actions.user"]; 
[self dismissViewControllerAnimated:YES completion:NULL]; 

Ma funziona bene se faccio questo:

[[NSOperationQueue mainQueue] addOperationWithBlock:^{ 
    [[SAStatus current] setValue:@(ua_photoSubmitted) forKeyPath:@"actions.user"]; 
}]; 

o posso fare questo e funziona anche bene:

[self dismissViewControllerAnimated:YES completion:^{ 

      [[SAStatus current] setValue:@(ua_photoSubmitted) forKeyPath:@"actions.user"]; 
}]; 

Al momento, non altre classi osservatore che variabile quindi non capisco perché influenzerebbe la vista modale.

+1

In realtà non importa se lo chiamate su sé stessi o su self.presentingViewController, entrambi dovrebbero funzionare. Qualunque fosse il tuo problema, non era il codice che hai detto che hai usato. – rdelmar

risposta

3

Non è sicuro che ciò stia causando la schermata nera, ma il controller di visualizzazione presentato dovrebbe chiamare dismissViewController su se stesso, non sul controller della vista di presentazione.

[self dismissViewControllerAnimated:YES completion:nil]; 
+1

Giusto, come dicono i documenti "se si chiama questo metodo sul controller di visualizzazione presentato, esso inoltra automaticamente il messaggio al controller di visualizzazione presentando" –

+0

Grazie per la risposta, ma non era questo il problema. Ho aggiornato il problema sopra. –

3

Ho visto questo problema con iOS 8 GM. Eliminare con il set animato su NO ha fatto il trucco.

+2

Come è una soluzione ?, * sospiro * – M0rph3v5

+0

È una soluzione temporanea finché Apple non lo risolve! Forse puoi invece utilizzare le API di transizione personalizzate di iOS 7. –

+0

Sto usando Xcode 6.0.1 con il kit di sviluppo ufficiale iOS 8 e il problema sembra non essere stato ancora risolto. L'impostazione animata = NO risolve comunque il problema. Molte grazie! – Katlu

Problemi correlati