TableViewCell не получает данные в Swift - PullRequest
0 голосов
/ 14 марта 2020

Я использую Custom TableViewCell в TableViewController. Даже данные заполняются, но мой TableViewCell не отображает их.

Вот мой пользовательский код TableViewCell

class PlaceItemCellCustom: UITableViewCell {

   @IBOutlet weak var placeFace: UILabel?
   @IBOutlet weak var placeName: UILabel?

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

}

Вот мой TableViewContoller

class PlaceListViewController: UITableViewController {

   override func viewDidLoad() {
      super.viewDidLoad()
      loadListFromSource()
   }

   // Other code

   override func numberOfSections(in tableView: UITableView) -> Int {
    return 1
   }

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

   override func tableView(_ tableView: UITableView, heightForRowAt indexPath: IndexPath) -> CGFloat {
       return 100
   }

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

       let place = places[indexPath.row]
       // I am getting the data 
       print(place.placeName?.description ?? " " )

       let customCell = tableView.dequeueReusableCell(withIdentifier: "PlaceListIdentifier", for: indexPath) as! PlaceItemCellCustom

       customCell.placeName?.text = place.placeName

       return customCell
   }

}

Что мне здесь не хватает? Я новичок в IOS разработке приложений. Нашел похожие вопросы , но это не помогло

Редактировать: Он работал нормально для TableViewCell по умолчанию.

Но когда я изменил его на пользовательский TableViewCell, он не работает. Я также установил имя класса в раскадровке.

Вот мой раскадровка

enter image description here

Вот вывод

enter image description here

Ответы [ 2 ]

1 голос
/ 14 марта 2020

Насколько я понимаю, вы, должно быть, забыли подключить IBOutlet placeName в PlaceItemCellCustom:

enter image description here

В вашем PlaceItemCellCustom keep placeName как:

@IBOutlet weak var placeName: UILabel!

и cellForRowAt:

customCell.placeName.text = place.placeName

таким образом, если вы забыли подключиться, segue Xcode выдаст ошибку как:

Поток 1. Неустранимая ошибка: неожиданно обнаружен ноль при неявном развертывании необязательного значения

Подробнее об этом можно прочитать здесь:

0 голосов
/ 14 марта 2020

Вам нужно использовать этот метод для получения данных.

func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
    return places.count
} 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...