2017-07-03 90 views
0

所以當我到達我的CartViewController時,表格加載得很好,但是當我將segue傳回給它時,表格變空了!我在不同的控制器中的其他TableViews重新加載相同的代碼,但這個視圖控制器是怪異的。tableview沒有加載後繼續segue回

class MealsDetailsController: UIViewController , UITableViewDelegate , UITableViewDataSource { 

@IBOutlet weak var tableView: UITableView! 


override func viewWillAppear(_ animated: Bool) { 
    super.viewWillAppear(true) 
    getMeals() 

} 


func getMeals() { 
    Alamofire.request(url!, method: .post, parameters: para,encoding: URLEncoding.default, headers: headers).responseJSON { response in 
     // get data code 
     let info = Meals(meal_id: id, Logo: logoString, meal_name: name, price: price)  
     self.meals.append(info) 
    } 

    DispatchQueue.main.async { 
     self.tableView.reloadData() 
    } 
} 

// what is going on here? 
} else { 

print("sorry data from api has some error") 
} 


} 


} 
+0

請更新類此代碼屬於,很難知道哪個視圖控制器的代碼是這個!!? –

+0

這全是在CartViewController中。我正在做api調用並在一個視圖控制器中加載表格@DarkInnocence – leo0019

+0

你能解釋一下這一行嗎「當我通過它然後繼續回到它表格變空!」也許上傳一個GIF來看看它的行動 –

回答

1

我不知道如果我理解你的代碼正確,則你調用Alamofire.request function.Update以外主線程代碼像下面

func getMeals() { 

Alamofire.request(url!, method: .post, parameters: para,encoding: URLEncoding.default, headers: headers).responseJSON { response in 

// get data code 
     let info = Meals(meal_id: id, Logo: logoString, meal_name: name, price: price) 
     self.meals.append(info) 
      DispatchQueue.main.async{ 
       self.tableView.reloadData() 
      } 
    } 

} 
+0

我以前試過但仍然不工作 – leo0019

+0

然後調用plz check tableView數據源並檢查在sectionOf方法中numberOfRows返回的內容。 –

+2

我也同意@DS Dharma更新表操作是Alamofire響應塊的「外部」。如果您的tableview在請求完成之前重新載入舊數據會發生什麼 - >沒有任何更改。 – ngbaanh