【问题标题】:Populate TableView with Data用数据填充 TableView
【发布时间】: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?

标签: swift uitableview uisearchbar


【解决方案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 没有初始化器
  • 当您调用该变量时,您必须使用 !为了让它工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多