【Swift】TableViewのCellが表示されない原因

SwiftでTableViewを作成するときに、セルが表示されない不具合が起こった場合の原因として考えられるものを挙げてみました。

テーブルの行数(セルの数)を返すメソッドが原因


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

上記のようなメソッドが必須なので、記述済みだと思います。
しかし自動補完でメソッドが作成された場合、デフォルトでは返り値が0になっています。
0のままではうまく動作しないため、セルの数(表示するデータの数)を返り値として返す必要があります。

テーブルのセルを返すメソッドが原因


func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
    let cell = tableView.dequeueReusableCell(withIdentifier: "tableCell", for: indexPath)
    cell.textLabel?.text = data[indexPath.row]
    return cell
}

同様に、テーブルのセルを返すメソッドもデフォルトの返り値はテキトーな値なので、適切な値を返してあげる必要があります。
セルを取得し、表示内容を代入して返り値として返します。

TableViewの参照が外れている

TableViewを選択した状態でShow the Connections Inspectorをクリックします。
一般的な機能を実現するには、OutletsのdataSource、delegateと、Referencing OutletsのTableViewに繋がっている変数にTableViewControllerを指定します。

コメント