disneyViewControllerAnimated funktioniert nicht innerhalb eines Blocks

8

Ich versuche, UIViewController zu schließen, nachdem UIAlertController angezeigt wurde.

Das ist mein Code:

%Vor%

Allerdings wird self niemals abgewiesen. Weiß jemand, wie man das löst?

AKTUALISIEREN

Wenn ich [self dismissViewControllerAnimated:YES completion:nil]; außerhalb des Blocks setze, funktioniert es.

    
Daniel 21.01.2015, 14:46
quelle

4 Antworten

5

Falls jemand das gleiche Problem hat. Ich habe die UIViewController gedrückt, ich habe sie nicht mit presentViewController:animated:completion: dargestellt. Deshalb sollte stattdessen [self.navigationController popViewControllerAnimated:YES]; verwendet werden.

Das seltsame ist, dass [self dismissViewControllerAnimated:YES completion:nil]; außerhalb des Blocks gearbeitet hat und nicht drinnen war, ich habe keine Erklärung dafür ...

    
Daniel 21.01.2015, 16:22
quelle
9

Verwenden Sie einfach [super.navigationController popViewControllerAnimated:YES];

    
diegomercado 04.05.2015 18:25
quelle
3

[self dismissViewControllerAnimated:YES completion:nil] schließt alle Ansichts-Controller, die die aktuell angezeigte Ansicht (d. h. "self") anzeigt. Was Sie tun möchten, ist dieselbe Methode auf dem präsentierenden View-Controller für "self" auszuführen. Ie.

%Vor%     
Dan Loewenherz 21.01.2015 14:50
quelle
2

Haben Sie überprüft, auf welchem ​​Thread der Baustein aufgerufen wird? Wenn es sich nicht um Thread 1 handelt, wird die Ansicht nicht ordnungsgemäß ausgeblendet, da die UI-Manipulation nur für Thread 1 durchgeführt werden kann. Versuchen Sie, eine Methode zum Ablehnen zu erstellen, und rufen Sie sie dann im Hauptthread auf:

%Vor%     
Bek 21.01.2015 15:54
quelle