Swift UITableViewController セルが表示されない 

#実装環境

Swift2.3
Xcode8
Siera バージョン 10.12



#UITableViewControllerがうまく表示されない


もしかしたら自分と同じ原因でUITableViewControllerの実装が上手く行ってない人が居るかもしれないと思いメモしておきます。下記のコードが原因でセルが全然表示されなくて困り果てました

```Swift:TestTableViewController.swift

override func numberOfSections(in tableView: UITableView) -> Int {
        
        return 0
        //↑これが原因
    }


```


#override func numberOfSectionsとは？

下記に二つの画像があります。一つ目は自分が実装したUITableViewControllerです。二つ目の画像はiPhoneの設定画面です。

セクションとは、この「ラベル」から下のセルの集まりのことです。

自分はここを0のままにしていました。UITableViewControllerの雛型のファイルを挿入した時デフォルトであるコードです。

よく分からずいじらないままにしておいたのです。ちゃんとコードを全て理解しなかったことが原因で、困り果てることになりました。

下記のようにコード修正、もしくは削除することでセルはちゃんと表示されるようになりました。


#正しいコードに修正（もしくはこのコードを消すとセルがちゃんと表示される）

```Swift:TestTableViewController.swift

override func numberOfSections(in tableView: UITableView) -> Int {
        //numberOfSections"セクション"という意味シミュレーターの"ラベル"の部分です
        //ちなみにここのreturnを0にするとセルがセルが表示されない
        
        
        return 2
        //↑セクション「ラベル」を二つ出す
    }


```

#シミュレーターで表示確認


<img width="367" alt="スクリーンショット 2016-10-27 20.13.13.png" src="https://qiita-image-store.s3.amazonaws.com/0/135794/f62497ad-19f6-8c6e-9d8c-84de0c4da30c.png">


#iPhoneでセクションを見てみる

![130911gian_ios118_cs1e1_x1000.jpg](https://qiita-image-store.s3.amazonaws.com/0/135794/9a44aad2-f9f1-3568-c3b7-e1fb2d45a976.jpeg)






#正しいコードの全部

```Swift:TestTableViewController.swift

import UIKit

class TestTableViewController: UITableViewController {
    
    
    //表示データ
    var dataList = [["今日は楽しかった","今日はつまんなかった"],[ "今日はめっちゃ楽しかった","今日はめっちゃつまんなかった"]]
    
    override func viewDidLoad() {
        super.viewDidLoad()

         }

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

   

    override func numberOfSections(in tableView: UITableView) -> Int {
        //numberOfSections"セクション"という意味シミュレーターの"ラベル"の部分です
        //ちなみにここのreturnを0にするとセルがセルが表示されない
        
        
        return 2
        //リターンが2だからセルの"ラベル"が二つ表示されている
    }

    override func tableView(
        _ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        // #warning Incomplete implementation, return the number of rows
        if(section == 0){
            return  dataList[0].count
            
        }else
            
            
            if(section == 1){
            return  dataList[1].count
        }
        return 0
        //return dataList[0].count + dataList[1].count
    }

    
    override func tableView(_ tableView: UITableView, titleForHeaderInSection section: Int) -> String? {
        return "ラベル"
    }
    
    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "TestCell", for: indexPath)

       cell.textLabel?.text = dataList[indexPath.section][indexPath.row]
        
        print(dataList)

        return cell
    }
    
    override func tableView(_ tableView: UITableView, commit editingStyle: UITableViewCellEditingStyle, forRowAt indexPath: IndexPath) {
        if editingStyle == .delete {
            // Delete the row from the data source
            tableView.deleteRows(at: [indexPath], with: .fade)
        } else if editingStyle == .insert {
            // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
       }    
   }
}

```

#GitHubにソースを全部アップ

https://github.com/Ryosuke-Hujisawa/UITableViewController-Deomo-iOS