2017-01-26 2 views
0
class TableController: UIViewController { 

    @IBOutlet var ListTable: UITableView! 

    var list: [Dictionary<String, String>] = [] 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let ListTable = UITableView(frame: view.bounds) 
     self.ListTable = ListTable 

     ListTable.dataSource = self 
     ListTable.delegate = self 

     initList() 
    } 


    func initList() { 
      // get list from firebase 
      self.ListTable.reloadData() 
    } 

    func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int { 
     return list.count 
    } 

    func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

     let item = self.list[indexPath.row] 
     let cellIdentifier = "ListCell" 

     let cell = CustomCell(style: .default, reuseIdentifier: cellIdentifier) 

     cell.foodLabel?.text = item["Banana"] 

     return cell 
    } 
} 

extension QueueController: UITableViewDataSource, UITableViewDelegate { 

} 

CustomCell класс:данные не отображаются в UITableView

import UIKit 

class CustomCell: UITableViewCell 
{ 

    @IBOutlet weak var foodLabel: UILabel! 

    override func awakeFromNib() 
    { 
     super.awakeFromNib() 
    } 
} 

Мои данные firebase нагрузки должным образом. На раскадровке у меня есть обычный контроллер просмотра с встроенным UITableView внутри него. Этот вид таблицы понравился моему IBOutlet для моего ListTable. В таблице есть ячейка с 3 ярлыками. Эта ячейка имеет идентификатор ListCell, и это класс CustomCell.

Редактировать: Нет ошибок, но мои данные не отображаются.

+0

что делает код, который загружает модель (т.е. 'list') выглядят как ? –

ответ

1

Это потому, что ваш заказ Cell не из очереди должным образом , Попробуйте это один

func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell { 

     let cellIdentifier = "ListCell" 
     var cell : ListCell? = tableView.dequeueReusableCell(withIdentifier: cellIdentifier) as! ListCell? 
     if (cell == nil) { 

      cell = Bundle.main.loadNibNamed("ListCell", owner: nil, options: nil)?[0] as? ListCell 
     } 


     cell?.backgroundColor = UIColor.clear 
     cell?.contentView.backgroundColor = UIColor.clear 

     return cell! 
    } 
+0

По 'ListCell' вы имеете в виду' CustomCell'? Или вы подразумеваете, что мне нужно создать новый тип ячейки? – user25093

+0

Да ListCell означает ваш CustomCell. –

+0

У меня нет ниба под названием «Список ячеек», как я могу создать наконечник? Или это автоматически создается? Я пробовал ваш код, и он не работал – user25093

1

Возможно попробовать регистрации вашей ячейки в viewDidLoad

ListTable.register(UINib(nibName: "CustomCell", bundle: Bundle.main), forCellReuseIdentifier: "ListCell") //this is assuming that your nib is named "CustomCell" 

Кроме того, для записи, вы должны следовать верблюжьей тематические конвенции и назовите ваш UITableView listTable

+0

Как создать наконечник с именем CustomCell? Где должен жить этот файл и нужно ли ему «foodLabel»? – user25093

0

Вы ни разу не добавить TableView на ваш взгляд ... (или часть идти код отсутствует)

Смежные вопросы