【问题标题】:UITableView show only first rowUITableView 只显示第一行
【发布时间】:2025-11-23 09:20:02
【问题描述】:

我的应用有 3 个选项卡(孩子、积分和请求),结果列表相同。 我正在使用自定义单元格在 3 个标签中显示具有相同数据的孩子信息。

例如:

儿童标签:

  • 孩子名字 1
  • 孩子名字 2
  • 孩子名字 3

积分标签:

  • 孩子名字 1
  • 孩子名字 2
  • 孩子名字 3

请求标签:

  • 孩子名字 1
  • 孩子名字 2
  • 孩子名字 3

当我转到请求并选择一个孩子时,我会推送另一个视图,其中包含每个选定孩子的总请求数。 现在非常奇怪的是,当我回到 Points 或 Kids 选项卡并重新加载时(我正在使用 pull 刷新,这不是问题所在)只有第一行出现!

我使用 NSXML 来解析 XML 并添加到一个名为 itemList 的 NSMutableArray 中,之后我填充了 tableview。

我已经尝试过的:

  1. 试图用 TBXML 替换 NSXML 解析器没有成功 出现同样的问题。

  2. 试图删除自定义单元格并使用 默认单元格没有成功。

  3. 试图更改小区标识符 没有成功。

  4. 试图更改所有变量名称 试图避免变量 替换。

  5. 应用程序中所有 var 和 obj 中的 NSLog 试图展示一切 成功。

  6. 试图移除拉动刷新和 出现同样的问题。

感谢所有帮助:)

谢谢! 克莱伯桑托斯

【问题讨论】:

  • 三个表视图都访问同一个数组对象吗?数组如何以及在哪里更新?显示要开始使用的 numberOfRowsInSection 方法。
  • 不是同一个数组,每个类 KidTableViewController、RequestsTableViewController 都有我们的数组和数据..

标签: iphone sdk uitableview nsxml


【解决方案1】:

首先你需要知道这是一个数据问题还是tableviewdelegate问题。我将首先交换一个静态 NSArray 来代替您的数据源,然后在模拟器中重新运行您的应用程序。如果它按预期工作,那么这意味着静态数据“工作”并且问题出在您的数据源上。

如果静态 NSArray 数据不起作用,则意味着您的问题出在 tableView 的委托或(更有可能)数据源方法上。如果事实证明是这种情况,那么如果您需要帮助,请尝试寻找它并在以后的帖子中提供代码示例。

注意:在您将数据源换成 NSArray 之前,最好在 Git/Subversion/whatever 中分支您的源,这样如果它不适用于静态数据,您可以拉取支持您的更改。并且不要告诉我你没有使用 SCM!!!!!!

【讨论】:

  • 确认!问题是数据..只需要发现是根本问题。谢谢! ;)
  • 尼尔,问题还在继续。我猜数据的问题是来自 NSXML 的某种类型的缓存,因为当我刷新 tableview 时,来自 XML 的响应只有第一行。有什么想法吗?
  • @Binho,我建议您自己处理 XML 的缓存。关闭这个线程,因为我们已经解决了这个问题,然后打开另一个带有代码示例的线程,该示例显示了您如何解析 XML 并将其存储在视图控制器中。
【解决方案2】:

您需要确保您的数据源正确无误。 UITableView 就是这样,一个视图。无论您的视图如何,您都需要检查您是否确实正确存储了数据。我的猜测是你在切换视图时破坏了你的数据。

【讨论】: