首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >加载指示灯不能正常工作

加载指示灯不能正常工作
EN

Stack Overflow用户
提问于 2016-08-04 20:02:58
回答 2查看 51关注 0票数 0

这是我的代码。在传递数据和向数据库添加数据的过程中,当我单击按钮时,我想显示一个指示器。我怎么才能修复它?

代码语言:javascript
运行
复制
@IBAction func addWishList(sender: AnyObject) {
     self.loading.startAnimating()
        addMovie(showMovie!) // Database add method.
}

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { () -> Void in
        let controller : WishListViewController = segue.destinationViewController as! WishListViewController

        if segue.identifier == "segue" {
            controller.user = self.tmpUser //  data from Facebook to pass another controller
            dispatch_async(dispatch_get_main_queue(), { () -> Void in
                self.loading.stopAnimating()
            })
        }
    })
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-08-04 20:29:31

您的addMovie阻塞主队列。你需要一些延迟才能将它添加到下一次运行循环中。尝试使用:

代码语言:javascript
运行
复制
@IBAction func addWishList(sender: AnyObject) {
    self.loading.startAnimating()
    //This will add to next main run loop.
    let dispatchTime: dispatch_time_t = dispatch_time(DISPATCH_TIME_NOW, Int64(0.0 * Double(NSEC_PER_SEC))) 
    dispatch_after(dispatchTime, dispatch_get_main_queue(), { 
            addMovie(showMovie!) // Database add method.

    })
}
票数 0
EN

Stack Overflow用户

发布于 2016-08-04 20:28:54

就像下面这样..

代码语言:javascript
运行
复制
   @IBAction func addWishList(sender: AnyObject) {

         self.loading.startAnimating()
    dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), { () -> Void in

            addMovie(showMovie!) // Database add method.

    dispatch_async(dispatch_get_main_queue(), { () -> Void in
    self.loading.stopAnimating()

    })
    })

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38766808

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档