2016-06-28 4 views
0

Мои данные поступают в модальный класс с именем Menu, создавая его объекты. Теперь Как я могу отправить имена меню для Tableview, чтобы показать, в частности, клеткиКак заполнять данные из класса модели в таблицуview

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) 

Здесь Все данные сохраняются в классе меню с помощью помощью меню object.I добавили коды, чтобы показать данные 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

ответ

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 


} 
+0

да, но значение приходит в необязательном значении, например, это необязательное значение (значение) –

+0

Можете ли вы дать скриншот экрана после изменения кода в соответствии с моим ответом? –

+0

Да, ваш код работает, но только незначительная ошибка –

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 
} 
+0

Фактически я попытался отобразить одно сообщение и сделал число строк, отсчитывающих исправление его работы. –

+0

проблема в «menus.count» не выводит счет из модели класса меню –

+0

Ohh. я получил ответ на самом деле. Я забыл перезагрузить tableview –