【问题标题】:cellForRowAtIndexPath is not being called on iOS-tableView remains empty在 iOS-tableView 上没有调用 cellForRowAtIndexPath 保持为空
【发布时间】:2013-07-08 14:57:27
【问题描述】:

我想在 tableView 中显示数组的内容,但控件从未进入 cellForRowAtIndexPath。这个方法是我添加的地方 cell.textLabel.text = [self.itemArray indexPath.row];

请指教。 你如何填充表格?

【问题讨论】:

  • 你确定它没有被调用尝试把 NSLog(@"TEST") 查看输出。这听起来很像第一次播种时表视图数据源为空,您可能想检查数组是否保存了对象。
  • tableView 有多少行。
  • 我怎样才能知道行数? numberOfRowsInSection 之前返回 0,然后我将其更改为 1。

标签: ios uitableview populate


【解决方案1】:
  1. 您确定它没有被调用尝试输入NSLog(@"TEST") 查看输出。

  2. 这听起来很像表视图datasource 在第一次播种时为空,您可能想检查数组是否保存了对象。

  3. 1234563 /p>

【讨论】:

  • 哦,我的 numberOfRowsInSection 返回 0
  • 我把它改成了1,我可以在tableView中看到一些东西。非常感谢。
  • 但是,如何选择一行?在表格中的单元格中进行进一步操作?目前,我无法选择任何内容。我只是在一行的单元格中看到一些文本。我想选择它。
  • 如果您希望能够选择一行,您必须将表 showelectionontouch 设置为 on(您可以从代码中设置或使用 Interface builder 将其选中),之后您必须编写自定义代码来处理 didSelectRowAtIndexPath 函数中的选择
  • 第 3 点很有帮助,逻辑上如果 numberOfSectionsInTableView 表设置为 > 1,那么 numberOfRowsInSection 应该 > 0
【解决方案2】:

你有没有在 UITableViewController 中实现过其他方法:

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    return [self.itemArray count];
}

如果这些返回 0,那么您的 cellForRowAtIndexPath 方法将不会被调用。

【讨论】:

  • 在你的情况下,那将是:self.itemArray,我相信。会更新。
  • 哦,是的,你是对的!我现在知道了。非常感谢!!你熟悉 Dropbox 吗?
  • 我有一个问题:虽然我在 viewDidLoad 中执行 [self.itemArray addObject:FILENAME],但计数结果为 0。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-04-23
  • 2014-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多