2015-09-06 209 views
1

我正在創建一個類似於Yelp的應用程序。在一個視圖控制器中,我有2個視圖:帶有名爲'list'和mapView的插座的UITableView。在頂部我有一個搜索欄。使用數據填充TableView

填充表視圖通常很簡單,但我沒有使用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,並有一個名爲attractionCell

+0

它與tableview行數有關嗎? – DesignMeetsCode

+0

您是否將tableView鏈接到委託和數據源?你的控制器符合('UITableViewDelegate'和)'UITableViewDataSource'嗎? –

回答

0

所有這行的第一個不應該工作將其刪除:

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

,也拆除全局變量細胞

然後你應該聲明一個全局字符串數組

在你的函數210
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] 
+0

對不起,我忘了在搜索功能中提到,我將單元格文本分配給標題。因此,如果我沒有單元格作爲全局變量,搜索功能將無法識別它 – DesignMeetsCode

+0

我們是否贊成發佈您的所有代碼和您正在使用的錯誤 – Lamar

+0

在頂部添加了所有內容 – DesignMeetsCode

0

reuseIdentifier儘量不要寫「?」第一個變量...

就像是:

var cell: UITableViewCell 
+0

當我這樣做,它說,ViewController沒有初始化器 – DesignMeetsCode

+0

當你調用該變量,你必須調用它!爲了使它工作 – 2015-09-07 12:20:59