我在餐厅应用程序上工作,我需要获得所有餐厅类型..我成功获取所有数据,但tableview没有重新加载..
var arrSubMenu = [ResataurantType]()
//TableView Datasource And Delegate Method
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
print(arrSubMenu.count)
return arrSubMenu.count
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell: leftMenuTableViewCell =
tableView.dequeueReusableCell(withIdentifier: "tableCell") as!
leftMenuTableViewCell
cell.name.text = self.arrSubMenu[indexPath.row].type
return cell
}
func getRestaurantType() {
let manager = AFHTTPSessionManager()
manager.requestSerializer = AFJSONRequestSerializer()
manager.get(RESTAURANTTYPE, parameters: nil, progress: nil, success: {
(operation, responseObj) in
if let objDic = responseObj as? [String:Any] {
if let objArray = objDic["RESTAURANT_TYPE"] as? NSArray {
for objType in objArray {
let ObjRestaurant = ResataurantType()
if let objString = objType as? String {
ObjRestaurant.type = objString
}
self.arrSubMenu.append(ObjRestaurant)
}
DispatchQueue.main.async {
self.tableView.reloadData()
}
}
}
}) { (operation, error) in
print(error)
}
}
我在ViewDidLoad()中调用此函数但仍然无法使用记录查看tableview
答案 0 :(得分:0)
您只需输入:
首先是IBOutlet:
@IBOutlet var tableView : UITableView
在viewDidLoad中:
tableView.dataSource = self //OR connection between tableView in storyboard and tableView in swift class
答案 1 :(得分:0)
你什么时候打电话给getRestaurantType()?是否可以在分配tableview的数据源之前调用它?这可能会使tableview显示为空,尽管存在基础数据。而且,除非你在程序中的某个其他位置调用reloadData(),否则它不会自行刷新。
答案 2 :(得分:0)
在索引方法
的行的单元格下面替换let cell =
tableView.dequeueReusableCell(withIdentifier: "tableCell" ,for: indexPath)as!
leftMenuTableViewCellenter