
class API{func loadOffers(completion:(([Offers])-> VoID),offer_ID: String,offerStatus:String){ let myUrl = NSURL(string: "http://www.myServer.PHP/API/v1.0/offers.PHP") let request = NSMutableURLRequest(URL: myUrl!) request.httpMethod = "POST" let poststring = "offer_ID=\(offer_ID)&offerStatus=\(dealStatus)&action=show" request.httpBody = poststring.dataUsingEnCoding(NSUTF8StringEnCoding,allowLossyConversion: true) let task = NSURLSession.sharedSession().dataTaskWithRequest(request) { data,response,error in if error != nil { println("error\(error)") }else{ var err:NSError? let JsonObject : AnyObject! = NSJsONSerialization.JsONObjectWithData(data,options: NSJsONReadingOptions.MutableContainers,error: nil) if let dict = JsonObject as? [String: AnyObject] { if let myOffers = dict["offers"] as? [AnyObject] { var offers = [Offers]() for offer in myOffers{ let offer = Offers(dictionary: offer as! NSDictionary) offers.append(offer) let priority = disPATCH_QUEUE_PRIORITY_DEFAulT dispatch_async(dispatch_get_global_queue(priority,0 )){ dispatch_async(dispatch_get_main_queue()){ completion(offers) } } } } } } } task.resume() } } 然后在我的VIEw Controller中加载模型:
class MyVIEwController: UIVIEwController,UItableVIEwDataSource,UItableVIEwDelegate { var offers: [Offers]! func loadModel() { let loadingNotification = MBProgressHUD.showHUDAddedTo(self.vIEw,animated: true) loadingNotification.mode = MBProgressHUDMode.Indeterminate loadingNotification.labelText = "updating your offers..." offers = [Offers]() let API = API() API.loadOffers(dIDLoadOffers,offer_ID: dealIDent!,offerStatus: "open") } func dIDLoadOffers(offers:[Offers]){ self.offers = offers self.tableVIEw.reloadData() MBProgressHUD.hIDeAllHUDsForVIEw(self.vIEw,animated: true) self.refreshControl.endRefreshing() } overrIDe func vIEwWillAppear(animated: Bool) { loadModel() } } 除了当JsON字典为空时,一切都有效,这意味着没有提供MBProgressHUD保持旋转.
我想停止活动指示器添加一个子视图,而不是说没有优惠.任何建议将不胜感激.
我试过了:
if offers.isEmpty {
MBProgressHUD.hIDeAllHUDsForVIEw(self.vIEw,animated:true)
}
并且
if offers == 0 {
MBProgressHUD.hIDeAllHUDsForVIEw(self.vIEw,animated:true)
}
但它不起作用
谢谢
解决方法 发生这种情况是因为您在主队列中设置了HUD,但正试图从另一个队列中删除.所有与UI相关的更改都应该在main_queue()中完成尝试使用此代码
dispatch_async(dispatch_get_main_queue(),{ // your code to modify HUD here}); 总结 以上是内存溢出为你收集整理的ios – 如何在服务器未返回数据时停止MBProgressHUD并添加子视图全部内容,希望文章能够帮你解决ios – 如何在服务器未返回数据时停止MBProgressHUD并添加子视图所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)