2015-08-28 1 views
0

Я обновил свой быстрый проект и по ошибке удалил функцию в своем приложении. Мой tableview больше не перезагружает данные сразу после его загрузки в Parse. Он только перезагружается, когда я закрываю приложение и снова его открываю.Как правильно перезагрузить табличное представление после сохранения новых данных в Parse?

До этого, после того, как я загрузил данные, он перезагрузится сразу после выполненного сеанса.

Вот мой tableView код:

override func viewDidLoad() { 
     super.viewDidLoad() 


     self.refreshControl = UIRefreshControl() 
     refreshControl.addTarget(self, action: "refreshTable", forControlEvents: UIControlEvents.ValueChanged) 
     self.homeTimelineTableView.addSubview(refreshControl) 


     self.refreshControl.backgroundColor = UIColor.yellowColor() 


     homeTimelineTableView.delegate = self; 
     homeTimelineTableView.dataSource = self; 



     var query = PFQuery(className: "Product") 
     query.orderByDescending("createdAt") 
     query.findObjectsInBackgroundWithBlock { 
      (products: [AnyObject]?, error: NSError?) -> Void in 

      if error == nil { 
       // success fetching objects  
       for product in products! { 

        self.imagePNG.append(product["imagePNG"] as! PFFile) 
        self.shortDescription.append(product["shortDescription"] as! String) 
        self.productTitles.append(product["title"] as! String) 
        self.productPrice.append(product["price"] as! String) 
        self.productLongD.append(product["longDescription"] as! String) 

       } 

       // reload the timeline table 
       self.homeTimelineTableView.reloadData() 

      }else { 

       println(error) 
      } 
     } 

    } 

Не уверен, что мне не хватает. Я попытался добавить self.homeTimelineTableview.reloadData() в верхней части моего viewDidLoad, предполагая, что он скажет tableView для перезагрузки после открытия контроллера, но это не сработает.

Любые предложения? Спасибо!

+0

должны проверяться ваш запрос возвращает данные –

+0

Да, существующие данные возвращаются. Но новые данные, однако, я должен перезапустить приложение. – V1P3R

ответ

0

homeTimelineTableView перезарядить от основного потока:

dispatch_async(dispatch_get_main_queue()) { 
    self.homeTimelineTableView.reloadData() 
} 
+0

Да, он прав. Любое обновление пользовательского интерфейса должно быть выполнено в основном потоке. Блоки выполняются на отдельной ветке. Как правило, любые обновления пользовательского интерфейса должны быть заключены в dispatch_async, если он вызывается из блока. – Teddy

+0

Я пробовал это, но он тоже не работает. – V1P3R

+0

Вы уверены, что ваш массив табличного представления обновляется? –

Смежные вопросы