【问题标题】:iPhone - changing contents of a UITableViewCell inside a navigationControlleriPhone - 在 navigationController 中更改 UITableViewCell 的内容
【发布时间】:2011-07-29 15:04:30
【问题描述】:

我有一个 UITableView,其中有一些包含人名的单元格。当用户单击一个单元格时,导航控制器将一个新视图推送到堆栈上,该视图显示该人的详细信息。当用户完成并单击按钮返回上一个视图时,表格视图再次显示。问题是我想编辑单元格文本(或只是以某种方式标记单元格)以显示用户已单击该单元格。在我的 cellForRowAtIndexPath: 方法中,我设置了在用户单击该单元格后应该更改单元格文本的代码。我设置了断点,它正在进入 cellForRowAtIndexPath: 当弹出详细视图并再次显示 tableview 时。它在 cellForRowAtIndexPath: 中输入代码段:应该更改文本,但是当它出现在屏幕上时,文本没有更改。有人对发生的事情有任何想法吗?谢谢。

编辑:我想通了。我只需要调用 [tableView reloadData];而不是调用 cellForRowAtIndexPath 方法。不知道为什么它的工作方式不同,但它修复了它。

【问题讨论】:

  • 你应该自己写一个真实的答案并接受你自己的答案,这样问题就结束了。
  • 我不能再等几个小时,因为我没有足够的业力,但我会的,谢谢。

标签: iphone uitableview


【解决方案1】:

我想我会帮你的。不过,您无需将答案归功于我。

cellForRowAtIndexPath:

当从队列中刷新单元格或需要创建单元格时,将在框架内调用该方法。你不应该调用这个方法。

[tableView reloadData];

该方法基本上是刷新 UITableView 中显示的所有可见单元格。如果您更改数据源中的信息或需要(强制)更新单元格的外观,则应调用此方法。

【讨论】:

    【解决方案2】:

    您已经重新加载表格并更改了文本很好,但如果您只是指示 NAD 不想更改文本,您可以使用给定文本的 elow ....

    [单元格setAccessoryType:UITableViewCellAccessoryCheckmark];

    它会检查你点击/访问过的粒子单元格......

    希望您喜欢这个解决方案.....

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多