self.tableView.reloadData触发,但表仍为空

时间:2014-08-09 04:38:39

标签: swift ios8 xcode6

我可能错过了一些非常明显的东西。由于某种原因,我的新UITableViewController没有填充。

我介入了它," viewDidAppear"当我通过模拟器访问我的新UITableViewController时激活。 " IF"触发器为true并且courseToWatch被分配。代码然后执行self.tableView.reloadData()但没有任何反应。表视图保持空白,没有错误或异常。

我已将rowIdentifier更改为" Cell"在新的UITableViewController中。我还缺少什么?

class WatchListViewController: UITableViewController {
var coursesToWatch = [ReportingFacility]()

override func viewDidAppear(animated: Bool) {
    var dataFile:NSURL = FileSystemHelper.pathForDocumentsFile("watchlist.data")
    if let possibleCourses = NSKeyedUnarchiver.unarchiveObjectWithFile(dataFile.path) as? [ReportingFacility]{
        if(possibleCourses.count != 0) {
            coursesToWatch = possibleCourses
        }
    }
    self.tableView.reloadData()
}

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Cell", forIndexPath: indexPath) as UITableViewCell
    if(coursesToWatch.count != 0) {
        var currentCourse = coursesToWatch[indexPath.row]
        cell.textLabel.text = currentCourse.name

    }
    return cell
}

}

1 个答案:

答案 0 :(得分:-1)

可能对我很有帮助。这对我有用。

func tableView(tableView:UITableView!,cellForRowAtIndexPath indexPath:NSIndexPath!) - > UITableViewCell的! {         //让cell = tableView.dequeueReusableCellWithIdentifier(" Datacell")作为UITableViewCell         // tableCell = UITableViewCell(style:UITableViewCellStyle.Value1,reuseIdentifier:nil)

    let CellIdentifier : NSString! = "Cell"
    tableCell = tableView.dequeueReusableCellWithIdentifier(CellIdentifier) as UITableViewCell!

    if(tableCell == nil){
         tableCell = UITableViewCell(style: UITableViewCellStyle.Value1, reuseIdentifier: CellIdentifier)
    }


    if(dataIsEmpty == true){
         tableCell.textLabel.text = "No Information Found !!!"
    }else{
    //    var aryDataStr : NSString! = dataAry[indexPath.row].valueForKey("name") as NSString!
    //    println("aryDataStr : \(aryDataStr)")

        if(selectedString == dataAry[indexPath.row].valueForKey("name") as NSString!){
            tableCell.accessoryType = UITableViewCellAccessoryType.Checkmark
        }else{
            tableCell.accessoryType = UITableViewCellAccessoryType.None
        }
        tableCell.textLabel.text = dataAry[indexPath.row].valueForKey("name") as NSString!
    }

}