如何将数据从类模型填充到tableview

时间:2016-06-28 11:49:29

标签: swift tableview swifty-json

我的数据是通过创建对象菜单进入名为Menu的模态类。现在如何将菜单名称发送到tableview以显示特定单元格

 var menus = [Menu]()
                    for (_, content) in json {
                        let menu = Menu(id: Int(content["id"].stringValue),
                            name: content["name"].string,
                             image: content["image"].string,
                            coupon: content["coupon"].int,
                            icon: content["icon"].string,
                            order: Int(content["order"].stringValue),
                            aname: content["name"].string,
                            options: Int(content["options"].stringValue),
                            subcategory:content["subcategory"].arrayObject)

                        menus.append(menu)
                    }
                    for menu in menus {
                        print(menu.name)
                        print(menu.id)
                        print(menu.subcategory)
                    }
                    print(menus.count)

此处所有数据都通过菜单对象的帮助保存在Menu类中。我已添加代码以向tableview显示数据。在这里,我创建了自定义tableview并尝试填充它

override func numberOfSectionsInTableView(tableView: UITableView) -> Int {
    // #warning Incomplete implementation, return the number of sections
    return 1
}

override func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {

    return menus.count

}


override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCellWithIdentifier("Menucell", forIndexPath: indexPath)as! MENUTableViewCell

    cell.Ordermenu.text = ("  \(menus[indexPath.row])")///here its not fetching the value
    return cell


    }

它不起作用。应该如何实施?

enter image description here

显示projectName.classname

接受回答后更新 enter image description here

2 个答案:

答案 0 :(得分:1)

尝试以下代码行。希望它会帮助你...

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCellWithIdentifier("Menucell", forIndexPath: indexPath)as! MENUTableViewCell
let menu : Menu =  menus[indexPath.row]
cell.Ordermenu!.text = menu. name
return cell


}

答案 1 :(得分:0)

你注册表格单元格吗?尝试这样的事情......

func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
{
    var cell: MENUTableViewCell! = tableView.dequeueReusableCellWithIdentifier("MENUTableViewCellIDENTIFIER") as? MENUTableViewCell

    if cell == nil
    {
        let nib: UINib = UINib(nibName:"MENUTableViewCell", bundle: nil)

        tableView.registerNib(nib, forCellReuseIdentifier:"MENUTableViewCellIDENTIFIER")
        cell = tableView.dequeueReusableCellWithIdentifier("MENUTableViewCellIDENTIFIER") as! CompactIncidentCellView
        //cell.selectionStyle = UITableViewCellSelectionStyle.None
    }

    // work with cell here...
    cell.Ordermenu.text = ("  \(menus[indexPath.row])")

    return cell
}