2017-12-02 9 views
0

私はiosとfirebaseを初めて使いました。ファイアストアからデータを取り出すときにセグを準備する

は、私は私のfirestoreから現在のドキュメントは、 各文書は、サブコレクションを持つテーブルビューを持っていると私は、行を打ったとき、それを取得し、私は「今、第二のtableView

に新しいデータを提示したいです

override func prepare(for segue: UIStoryboardSegue, sender: Any?) { 
    switch segue.identifier { 

    case "showOptions"?: 
    let selectedDishTableViewController = segue.destination as! SelectedDishViewController 
    if let indexPath = tableViewDishes.indexPathForSelectedRow { 
     brain.loadOptions(dish: brain.listOfDishes[indexPath.row]) 
     selectedDishTableViewController.dish = brain.listOfDishes[indexPath.row] 
     selectedDishTableViewController.myOption = brain.myOption 
     brain.myOption.removeAll() 
     } 
     default: break 
    } 
} 

これは私の脳のFUNCです:使用してメートル

func loadOptions(dish:Dish) { 

     db.collection("Restaurants").document("Limon").collection("Menu").document((self.sectionName!)).collection("Dishes").document(dish.DishName).collection("Options").getDocuments { [weak self](querySnapshot, error) in 
      if error != nil {print(error)} 
      else { 
       for document in querySnapshot!.documents { 
        // appending the data to my Array that will be presented in the next tableView 
       } 
      } 
     } 

} 

今何が起こるかは、最初の時間は、私が行最初viewdを打つことですdb.collectionがasyncedであるため、最初のヒットからデータを表示するために、同じ行を押した後にヒットする必要があるため、2番目のtableviewのidloadが表示されます。

+0

を使用する第二のtableViewのViewDidApearでは、メインスレッド上の第二のコントローラテーブルビューをリロードする必要があります。 –

+0

私はfuncのリロードデータを追加してテーブルをリロードするか、viewDidloadでそれを行うべきですか?私はこれをどのように実行するか分からない。 –

答えて

0

ので、私はdb.collectionの完了ハンドラを追加 、私の問題の将来のGooglerを解決するために管理し、私はtableview.reloaddata()

関連する問題