2017-01-18 18 views
0

データセットを表示するtableView(viewController内)を作成しようとしていますが、今回はデータが表示されません。私は既にviewControllerをdataSourceとして宣言しており、tableViewのデリゲートとして宣言しています。ここに私のviewControllerClassです:あなたはコンセントが接続されているXIB /ストーリーボード、その後データソースとデリゲートを使用してのUITableViewを作成している場合UITableViewはデータを表示していませんが既にデータソースとデリゲートを表示しています

class MenuViewController: UIViewController , UITableViewDataSource ,   UITableViewDelegate { 

    var menuItems = [ "1" , "2" , "3"] 

    override func viewDidLoad() { 
     super.viewDidLoad() 
     // Do any additional setup after loading the view, typically from a nib. 


    } 

    override func didReceiveMemoryWarning() { 
     super.didReceiveMemoryWarning() 
     // Dispose of any resources that can be recreated. 
    } 

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

    open func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell 
    { 
     let cell = tableView.dequeueReusableCell(withIdentifier: "cell", for: indexPath) 

     cell.textLabel?.text = menuItems[indexPath.row] 

     return cell 

    } 
} 
+2

ここで、データソースとしてビューコントローラを追加し、委任しますか?テーブルビューはビューにどこに追加され、制約は何ですか? 'numberOfRowsInSection'と' cellForRowAt'にブレークポイントを設定すると、両方のブレークポイントがヒットしますか? – keithbhunter

+2

2つのこと...データソースとデリゲートがインターフェイスビルダで接続されていることを確認するか、viewDidLoadで手動で設定してください。... tableVideo.reloadData()を強制してください。 – GregP

+0

@keithbhunterビューコントローラをデータソースとして設定し、 .storyboardと私はブレークポイントを設定し、両方がヒットした –

答えて

0

ご確認ください。それ以外の場合は、プログラムで作成してから、デリゲートとデータソースを設定します。

0

あなたはこのように()のviewDidLoad内のセルを登録する必要があります。

tableView.register(UITableViewCell.self、reuseIdentifier: "セル")。 ほしいと思っています。

0

あなたのテーブルビューにはIBOutletが必要です。ストーリーボードから、テーブルビューからMenuViewControllerにドラッグアンドドロップする必要があります。次に、viewDidLoadの内部で、データソースとデリゲートを設定する必要があります。

override func viewDidLoad() { 
     super.viewDidLoad() 
     tableView.dataSource = self 
     tableView.delegate = self 
    } 

今、あなたのテーブルビューには誰がデータを提供するのかが分かりません。そのためnumberOfRowsInSectionとcellForRowは呼び出されません。彼らが呼び出されていないので、テーブルビューdoeは何を表示するか分からない。テーブルビューは何を表示するかを知らないので、何も表示されません。

関連する問題