为什么我在Swift中的UITableView中看不到任何单元格?

时间:2016-09-18 15:17:22

标签: ios swift uitableview

我有一个UIViewController,我把它TableView

enter image description here

我还在其中添加了UITableViewCell,在故事板中检查了我的表视图是否具有动态生成的内容,并向UITableViewCell添加了标识符“cell”。我将它连接到我班级的插座,然后我从UITableViewDelegate

设置了继承
class MapViewController: UIViewController, UITableViewDelegate, UITextViewDelegate {

@IBOutlet weak var myTableDetailsPanel: UITableView!

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

然后我将自定义对象添加到我的数组中:

var items = NSMutableArray()
...
print("size of items before: \(items.count)")
items.addObject(myObject)
print("size of items after: \(items.count)")
myTableDetailsPanel.reloadData()
myTableDetailsPanel.hidden = false

我也有这种方法:

func tableView(myTableDetailsPanel: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell {
    let cell = myTableDetailsPanel.dequeueReusableCellWithIdentifier("cell") as! MyDetailsCell
    let yawp:MySingleObject =  self.items[indexPath.row] as! MySingleObject
    print("hello")
    ...

而且......我的问题是面板显示为空,在我看到的控制台中:

size of items before: 0
size of items after: 1

但不知怎的,我没有看到hello。我cellForRowAtIndexPath的代码永远不会运行。为什么这样?

1 个答案:

答案 0 :(得分:3)

当您实施UITableViewDelegate协议以通知您必须实现UITableViewDataSourceUITableView中的更改时,数据源会向表视图对象提供所需的信息构建和修改表视图。

因此,您需要实施UITableViewDataSource协议,并将dataSource声明为self,如下所示:

myTableDetailsPanel.dataSource = self

我希望这对你有所帮助。