我拿了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
}
}
但我的桌子是空的。我错过了什么?
答案 0 :(得分:1)
您必须在viewDidLoad
中添加以下行:
theTableView.dataSource = self
当你这样做时,你从ViewController向你的Tableview提供dataSource,然后你的TableView开始显示数据。
方法cellForRowAtIndexPath
和rowsForSection
都是数据源方法。由于您没有设置dataSource,导致TableView无法加载提供的数据。
此外,如果您还没有通过Storyboard / Xib添加TableView,您还必须将其添加为视图的子视图。