2017-09-12 7 views
1

내 목표는 모달 창을 닫아야하는지 여부를 URL 요청을 통해 확인하는 것입니다. 그러나 여기의 코드는 작동하지 않으며 알아낼 수 없습니다. 왜.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) 
      } 
     }) 
    } 

내가 뭘 잘못 했는가?

+0

'가드'이후의 부분이 실행되었는지 확인 했습니까? – the4kman

+0

예, 했어요. – Kurse

+0

'self.dismiss'에서 완료를 확인할 수 있습니까? – Raymond

답변

1

UI 작업은 주 스레드에서 실행해야합니다. 그래서 주 스레드에서 해고하려고하십시오.

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

그게 다 했어, 많이 고마워! – Kurse