2013-05-17 9 views
8

przedstawiam modalne widok, który jest kontrolerem nawigacja:dismissViewControllerAnimated wyniki w pustym ekranie

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

Kiedy skończę z modalnego widzenia wewnątrz NVC w widocznym regulatora:

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

Wynik Blank Screen

Jakieś pomysły, dlaczego tak się stanie?

UPDATE: zdałem sobie sprawę, dzieje się tak dopiero, gdy przed odrzucając pogląd, zaktualizować wartość w udostępnionym klasy singleton, używam do śledzenia zdarzeń.

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

Ale to działa dobrze, jeśli mogę to zrobić:

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

czy mogę to zrobić i to również działa dobrze:

[self dismissViewControllerAnimated:YES completion:^{ 

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

w tym czasie, nie innych klas obserwatora że zmienna, więc nie rozumiem, dlaczego miałoby to wpływ na widok modalny.

+1

W rzeczywistości nie ma znaczenia, czy wywołasz to samodzielnie, czy samodzielnie. PresentingViewController, oba powinny działać. Jakikolwiek był twój problem, nie był to kod, którego użyłeś. – rdelmar

Odpowiedz

3

Nie jestem pewny, że powoduje to czarny ekran, ale przedstawiony kontroler widoku powinien wywołać metodę dismissViewController na sobie, a nie na prezentującym kontroler widoku.

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

W porządku, jak mówią lekarze "jeśli wywołasz tę metodę w przedstawionym kontrolerze widoku, automatycznie przekazuje wiadomość do kontrolera widoku prezentującego" –

+0

Dzięki za odpowiedź, ale to nie było problemem. Zaktualizowałem temat powyżej. –

3

Widziałem ten problem z iOS 8 GM. Odejście od animowanego zestawu do NO spowodowało, że lewę.

+2

Jak to jest rozwiązaniem ?, * westchnienie * – M0rph3v5

+0

To rozwiązanie tymczasowe, dopóki Apple go nie naprawi! Może zamiast tego możesz skorzystać z niestandardowych interfejsów API przejścia iOS 7. –

+0

Używam Xcode 6.0.1 z oficjalnym zestawem dla programistów iOS 8, a problem nie został jeszcze naprawiony. Ustawienie animated = NO nadal rozwiązuje problem. Wielkie dzięki! – Katlu

Powiązane problemy