UITableView不显示数据?

时间:2016-08-01 05:50:02

标签: ios swift uitableview

我拿了UIViewController。然后带了一个TableView。然后是tableview中的TableViewCell。我为该原型单元分配了identifier和自定义表视图单元类。还创造了必要的出路。那么这是我的父视图控制器:

class MyViewController: UIViewController, UITableViewDelegate, UITableViewDataSource {

    @IBOutlet weak var theTableView: UITableView!

    override func viewDidLoad() {
        super.viewDidLoad()

        // Do any additional setup after loading the view.

//        let cell = MyTableViewCell()
//        cell.optionText = UILabel()
//        cell.optionText?.text = "testing..."

//        theTableView.addSubview(cell)
        theTableView.delegate = self
    }

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


    /*
    // MARK: - Navigation

    // In a storyboard-based application, you will often want to do a little preparation before navigation
    override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
        // Get the new view controller using segue.destinationViewController.
        // Pass the selected object to the new view controller.
    }
    */



    func tableView(tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return 5
    }

    func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCellWithIdentifier("cell", forIndexPath: indexPath) as! MyTableViewCell
        cell.optionText.text = "hello..."
        return cell
    }

}

但我的桌子是空的。我错过了什么?

1 个答案:

答案 0 :(得分:1)

您必须在viewDidLoad中添加以下行:

theTableView.dataSource = self

当你这样做时,你从ViewController向你的Tableview提供dataSource,然后你的TableView开始显示数据。

方法cellForRowAtIndexPathrowsForSection都是数据源方法。由于您没有设置dataSource,导致TableView无法加载提供的数据。

此外,如果您还没有通过Storyboard / Xib添加TableView,您还必须将其添加为视图的子视图。