我是iOS编程新手
我在iOS设备上查看表数据时遇到问题,但可以在控制台上看到 以下是我的代码:
@IBOutlet weak var tableView: UITableView!
var model = [String]()
override func viewDidLoad() {
super.viewDidLoad()
webService.delegate = self
tableView.delegate = self
tableView.dataSource = self
let str = ""
webService.fireRequest(functionName: "ClassName.php", requestString: str, view: view)
}
func numberOfSections(in tableView: UITableView) -> Int {
return model.count
}
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return 1
}
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "classWiseMgmtTableViewCell", for: indexPath)
cell.textLabel?.text = model[indexPath.row]
cell.layer.cornerRadius = 8
cell.layer.masksToBounds = true
return cell
}
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
tableView.deselectRow(at: indexPath, animated: true)
let vc = storyboard?.instantiateViewController(withIdentifier: "divisionWiseTableViewCell") as! DivisionWiseViewController
vc.term = self.model[indexPath.section]
navigationController?.pushViewController(vc, animated: true)
}
func tableView(_ tableView: UITableView, heightForHeaderInSection section: Int) -> CGFloat {
return 10.0
}
override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
}
// func webserviceDidFinishWith(response: [String : Any]) {
// }
func webserviceDidFinishWith(response: [String : Any], functionName: String) {
print("Response\(response)")
let array = response["Cls_Name"] as? [[String:String]]
if array != nil
{
self.model.removeAll()
for obj in array!
{
self.model.append(obj["Cls_Name"]!)
}
self.tableView.reloadData()
}
}
}
答案 0 :(得分:0)
您可以使用:
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return model.count;
}
我猜问题是tableView
中的行而且我也不确定你是否有这么多的部分。如果这样只有一个部分传递
func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
还要检查一下:
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cellIdentifier : String = "classWiseMgmtTableViewCell";
var cell : SportCell! =
tableView.dequeueReusableCell(withIdentifier: cellIdentifier) as! SportCell //Pass your tableViewCell FileName here
}
希望这有助于。
您可以提取以下数据:
var arrResponse = repsonse as! [String:Any] //Instead of response pass your WebService Response here
let arrClassName = arrResponse["clsname"] as! NSArray
print(arrClassName)
链接到谷歌驱动器是: Demo Project
部分说明:我已将Alamofire用于Get Method,如果项目未运行或未能检测到Alamofire,只需使用pod install
再次安装pod即可会工作的。
希望它有所帮助!
答案 1 :(得分:0)
使用以下代码
更新cellForRowAt
内部功能
cell.textLabel?.text = model[indexPath.section]
答案 2 :(得分:0)
缺少一件事,有一件事是错的。
缺少(把它放在viewDidLoad
中):
self.tableView.registerClass(UITableViewCell.self, forCellReuseIdentifier: "classWiseMgmtTableViewCell")
错误(在indexPath.row
中将indexPath.section
替换为cellForRowAt
):
cell.textLabel?.text = model[indexPath.section]