2016-04-23 16 views
0

mysqlデータベースのデータを変更してもテーブルビューのデータを更新したいが、動作していない。私parsejson機能では、私はしてみました:もちろんhow update update tableview json

dispatch_async(dispatch_get_main_queue(),{ 

        self.movies = movieArray 
        self.tableView.reloadData() 

を、それはテーブルビューを認識しないので、この関数はtableviewcontrollerではないので、これは動作しません。 tableviewcontrollerとは別のファイルの関数からtableviewをリロードする方法はありますか?

よろしく

答えて

0

あなたのデータを更新した後、それがモデルだアップデータその後、あなたのテーブルビューを再ロードするためにあなたのtableviewControllerを通知します。

0

Swift Closuresを使用してください。

コードの部品そのように表示されます。

DataLoader.swift

class DataLoader: NSObject { 

    func uploadData(completion: ([AnyObject]) ->()) { 
     let priority = DISPATCH_QUEUE_PRIORITY_DEFAULT 
     dispatch_async(dispatch_get_global_queue(priority, 0)) { 
      let array = [1, 2, 3, 4] //load your data in background thread 
      dispatch_async(dispatch_get_main_queue()) { 
       completion(array) //send completion in main thread 
      } 
     } 
    } 
} 

ViewController.swift

class ViewController: UIViewController { 
    let dataLoader = DataLoader() 
    override func viewDidLoad() { 
     super.viewDidLoad() 
     self.dataLoader.uploadData { 
      (any) in 
      if let movieArray = any as? [Int] { //Here instead of [Int] should be your array of objects e.g. [Movies] 
       print("result: \(movieArray)") 
       self.movies = movieArray 
       self.tableView.reloadData() 
      } 
     } 
    } 
}