ios表数据不显示

时间:2018-04-18 06:59:21

标签: ios swift uitableview

我是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()

    }


}

}

3 个答案:

答案 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)

编辑与WS Call集成的演示链接

链接到谷歌驱动器是: 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]