在api调用中执行segue不工作

时间:2016-04-30 20:34:28

标签: ios swift segue modalviewcontroller

我的登录页面使用API​​调用来检查凭证,最后我将主页面作为模态,使用performSegue,如下所示:

@IBAction func loginPressed(sender: UIButton) {
    ApiHelper.userService { (service) -> Void in
        let query = GTLUserController.queryForLoginUser(email,password)
        service.executeQuery(query) { (ticket: GTLServiceTicket!, object: AnyObject!, error: NSError!) -> Void in
            if(error != nil){
                return
            }

            //Code...
            self.performSegueWithIdentifier("mainSegue", sender: self)
        }
    }
}

当我第一次启动应用程序时,segue工作正常,但是当我终止应用程序(使用滑动)并再次登录时,segue无法正常工作,我看到1s的主页面,然后返回登录。

N.B:当我在API调用之外使用它时,segue正常工作

提前感谢

1 个答案:

答案 0 :(得分:0)

永远不要在后台线程上更新UI,而是在主线程上执行segue,如此

dispatch_async(dispatch_get_main_queue()) {
  self.performSegueWithIdentifier("mainSegue", sender: self)
}