2013-05-17 10 views
8

ich modale Ansicht präsentieren, die ein Navigation-Controller ist:dismissViewControllerAnimated Ergebnisse in leeren Bildschirm

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

Sobald ich mit der modalen Ansicht getan, innerhalb nvc des sichtbaren Controller:

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

Ergebnis Blank Screen

Irgendwelche Ideen, warum das passieren könnte?

UPDATE: Ich erkannte dies geschieht nur, wenn vor der Ansicht, Entlassung, ich einen Wert aktualisieren in einer gemeinsamen Singletonklasse, verwende ich den Überblick über Ereignisse zu halten.

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

Aber es funktioniert gut, wenn ich dies tun:

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

oder ich kann dies tun, und es funktioniert auch gut:

[self dismissViewControllerAnimated:YES completion:^{ 

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

Damals keine anderen Klassen Beobachter, Variable, so verstehe ich nicht, warum es die modale Sicht beeinflussen würde.

+1

Eigentlich ist es egal, ob Sie es auf self oder presentingViewController aufrufen, beide sollten funktionieren. Was auch immer dein Problem war, es war nicht der Code, den du benutzt hast. – rdelmar

Antwort

3

Nicht sicher, dass dies den schwarzen Bildschirm verursacht, aber der vorgestellte View-Controller sollte ablehnenAnsichtController auf sich selbst, nicht auf der präsentierenden View-Controller.

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

Richtig, wie die Dokumentation sagt "Wenn Sie diese Methode auf dem vorgestellten View-Controller selbst aufrufen, leitet es automatisch die Nachricht an die präsentierende View-Controller" –

+0

Danke für die Antwort, aber das war nicht das Problem. Ich habe das obige Problem aktualisiert. –

3

Ich sah dieses Problem mit iOS 8 GM. Mit dem animierten Set auf NEIN zu verzichten, war der Trick.

+2

Wie ist das eine Lösung ?, * seufz * – M0rph3v5

+0

Es ist eine temporäre Lösung, bis Apple es behebt! Möglicherweise können Sie stattdessen die benutzerdefinierten iOS 7-Übergangs-APIs verwenden. –

+0

Ich verwende Xcode 6.0.1 mit dem offiziellen iOS 8 Developer Kit und das Problem scheint noch nicht behoben zu sein. Die Einstellung animiert = NO behebt das Problem jedoch. Danke vielmals! – Katlu