2017-09-12 2 views
1

Mein Ziel hier ist, durch eine URL-Anfrage zu bestimmen, ob ein modales Fenster geschlossen werden sollte oder nicht, aber mein Code hier funktioniert nicht und ich kann nicht herausfinden Warum.Lehnen Sie ein modales Fenster von einem Abschlussblock Rückruf in Swift 3

func dissmissIfServerTellsMeTo() { 
     LoginRequest.checkTokenIsStillValid(completionHandler: { (response) in 
      if let result = response.result { 
       guard result else { 
        print("Access denied") 
        return 
       } 
       self.dismiss(animated: false, completion: nil) 
      } 
     }) 
    } 

Irgendwelche Ideen, was ich falsch gemacht habe?

+0

Haben Sie überprüft, ob der Teil nach 'guard' ausgeführt wird? – the4kman

+0

Ja, ich tat es und es tut es. – Kurse

+0

Können Sie überprüfen, ob die Vervollständigung in 'self.dismiss' ausgeführt wird? – Raymond

Antwort

1

UI-Vorgänge müssen am Hauptthread ausgeführt werden. Also, versuchen Sie auf Haupt-Thread zu entlassen.

func dissmissIfServerTellsMeTo() { 
LoginRequest.checkTokenIsStillValid(completionHandler: { (response) in 
    if let result = response.result { 
     guard result else { 
      print("Access denied") 
      return 
     } 

     DispatchQueue.main.async { 
      self.dismiss(animated: false, completion: nil) 
     } 
    } 
}) 
} 
+1

Das ist es, vielen Dank! – Kurse

Verwandte Themen