用数据填充 TableView

Posted

技术标签:

【中文标题】用数据填充 TableView【英文标题】:Populate TableView with Data 【发布时间】:2015-09-06 23:23:08 【问题描述】:

我正在制作一个类似于 Yelp 的应用程序。在视图控制器中,我有 2 个视图:带有一个名为“列表”的插座的 UITableView 和一个 mapView。在顶部我有一个搜索栏。

填充表格视图通常很简单,但我没有使用 UITableViewController,所以有点混乱。

在最顶部,我添加了一个全局变量

var cell: UITableViewCell?

然后在一个表函数中,我有

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 



    var cell = tableView.dequeueReusableCellWithIdentifier("attractionCell") as! AttractionCell!

    if cell == nil 
    cell = AttractionCell(style: UITableViewCellStyle.Default, reuseIdentifier: "attractionCell")
    
    cell.attractionName.text = title
    return cell


在底部,我有一个用于单击搜索栏时的功能,然后它从 Parse 中获取数据,并将对象的名称分配给一个名为“title”的变量。

  func searchBarSearchButtonClicked(searchBar: UISearchBar) 
  var Query = PFQuery(className:"Stores")
  Query.whereKey("Location", nearGeoPoint:area, withinMiles: 5)
  Query.findObjectsInBackgroundWithBlock 
  (objects: [AnyObject]?, error: NSError?) -> Void in

   if error == nil 

    let objects = objects as! [PFObject]
    for object in objects                     
   let title = object["name"] as! String
 self.cell?.attractionName.text = title

为什么我的表格视图没有填充?

另外,在情节提要中,tableView 中的原型单元格属于 AttractionCell 类,并且有一个称为吸引单元的重用标识符

【问题讨论】:

和tableview的行数有关系吗? 您是否将 tableView 链接到委托和数据源?您的控制器是否符合(UITableViewDelegate 和)UITableViewDataSource 【参考方案1】:

首先这行不应该删除它:

    if cell == nil 
    
cell = AttractionCell(style: UITableViewCellStyle.Default, reuseIdentifier: "attractionCell")
    

同时删除全局变量单元格

那么你应该全局声明一个字符串数组

var arrayData = [String]()

在您的函数中删除该行:

 self.cell?.attractionName.text = title

并添加这个

  arrayData.append(title)  
self.tableView.reloadData()

numberofRowInSection()

 return arrayData.count

cellForRowAtIndexPath()

 cell.attractionName.text = arrayData[indexPath.row]

【讨论】:

对不起,我忘了在搜索功能中提及,我将单元格文本分配给标题。因此,如果我没有将单元格作为全局变量,搜索功能将无法识别它 我们是否愿意发布您的所有代码和您遇到的错误 在顶部添加了所有内容 检查编辑代码,您仍然需要删除我告诉您删除的内容,按照说明操作即可 是的!现在我试图弄清楚如何将图像添加到单元格中。我是否将它们添加到同一个数组中?非常感谢【参考方案2】:

尽量不要写“?”在第一个变量上...

像这样:

var cell: UITableViewCell

【讨论】:

当我这样做时,它说 ViewController 没有初始化器 当您调用该变量时,您必须使用 !为了让它工作

以上是关于用数据填充 TableView的主要内容,如果未能解决你的问题,请参考以下文章

用替换数据填充缺失数据

用mysql数据填充文本框

用 MySQL 数据填充 Datagridview

一个单元格更新后自动用数据填充一列

用 Pandas 数据框中的行填充嵌套字典

用数据填充 TableView