2017-08-24 1 views
0

Ich bekomme diesen Fehler, während produzieren Alarmansicht "Versuch zu präsentieren, auf deren Ansicht ist nicht in der Fensterhierarchie!". Bitte schauen Sie sich meinen Code unten an. Ich verwende die Operationswarteschlange, um die Aufgabe für die Warnung auszuführen.UIAlertController gibt Fehler während der Produktion alertview

Zum ersten Mal funktioniert es gut, aber wenn ich abbrechen Knopf auf Alert als seine gib mir oben Fehler. Momentan öffne ich einen anderen Alarm von derselben Funktion, wenn der Benutzer die Abbrechen-Taste drückt.

final func finish(_ errors: [NSError] = []) { 
    if !hasFinishedAlready { 
     hasFinishedAlready = true 
     state = .finishing 

     let combinedErrors = _internalErrors + errors 
     finished(combinedErrors) 

     for observer in observers { 
      observer.operationDidFinish(self, errors: combinedErrors) 
     } 

     state = .finished 
    } 
} 
+0

Warum brauchen Sie eine Operation? Können Sie Ihren Code auch formatieren? Vielen Dank. –

+0

Format ?, was Sie meinen –

+0

Ich werde es für Sie tun. Aber das nächste Mal, bitte mach es selbst. –

Antwort

0

Überprüfen Sie, ob es einige Problem mit Ihrem presentationContext ist, das heißt, wenn seine Ansicht in der Fensterhierarchie vorhanden ist,

Für versuchen diese

presentationContext.present(self.alertController, animated: true, completion: nil) 

mit

UIApplication.shared.keyWindow?.rootViewController?.present(self.alertController, animated: true, completion: nil) 
ersetzen

Wenn es mit der Präsentation auf window'sfunktioniert, versuchen Sie dann, Ihre presentationContext zu lösen.

+0

Dies ist ein Kommentar, anstatt eine Antwort sein sollte. Es bietet keinen zusätzlichen Wert. –

+0

es funktioniert nicht für mich –

Verwandte Themen