在 api 调用中执行 segue 不起作用
Posted
技术标签:
【中文标题】在 api 调用中执行 segue 不起作用【英文标题】:Perform segue not working inside api call 【发布时间】:2016-04-30 20:34:28 【问题描述】:我有一个使用 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 无法正常工作,我看到主页 1 秒然后又重新登录。
注意:当我在 API 调用之外使用时,segue 工作正常
提前致谢
【问题讨论】:
【参考方案1】:永远不要在后台线程上更新 UI,而是像这样在主线程上执行 segue
dispatch_async(dispatch_get_main_queue())
self.performSegueWithIdentifier("mainSegue", sender: self)
【讨论】:
我已经尝试过了,但它不起作用。只有当我杀死应用程序并重新启动它时,我的 segue 才不起作用。第一次在没有主线程的情况下完美运行以上是关于在 api 调用中执行 segue 不起作用的主要内容,如果未能解决你的问题,请参考以下文章
从 didSelectRowAtIndexPath 执行 segue 不起作用
在 onclick 条形图列之后,Segue 在 coreplot Graphview.m 中不起作用