【问题标题】:This might be a simple question. HELP with Resetting UITableViewCells这可能是一个简单的问题。帮助重置 UITableViewCells
【发布时间】:2011-06-30 15:58:02
【问题描述】:

我有一个严重的疑问。这可能很简单,但我需要一些帮助。

我有一个视图 (view1) 并导航到 (view2)。视图 2 中有一个 tableView,其中包含一些 textFields(作为子视图添加),我在 UITableViewCells 中的 textFields 中添加了一些数据。

我按下返回按钮,然后返回查看 1。

如果我再次导航到视图 2,文本字段的状态与我之前离开的状态完全相同。我希望它为零,并显示其中的占位符。如何在不破坏所有其他数据的情况下再次使 textFields 为零?

我在视图 1 中使用 NSUserDefaults 让视图 2 知道我正在导航。但是……方法 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathviewDidLoad 似乎没有被再次调用。只有再次调用它,我才能在 uitableViewCells nil 中制作 textFields。

有人能告诉我每次导航到 view2 时如何调用 tableViewCells 吗?

【问题讨论】:

  • 您显然不是在重新加载第二个视图,而是重用它(这很好)。因此 viewDidLoad 无济于事,但 viewWillAppear 可能会完成这项工作。
  • ....谢谢直到。你是对的!

标签: iphone objective-c cocoa-touch uitableview uinavigationcontroller


【解决方案1】:

要让您的文本字段恢复到其原始状态,您最好在viewDidDisappear 方法中使用一些逻辑。在最基本的形式中,每当视图消失时,您都会找到 textField 实例(通过直接引用或通过搜索 tableView 子视图)并向每个实例发送 textField.text = @"";。这将清除文本。如果您需要存储任何文本,您可以在清除它之前调用NSString *myText = textField.text; 之类的东西并使用它执行您需要的操作,以及在完成视图之前执行任何其他检查或存储

【讨论】:

  • 任何时候,先生。我发誓我们最终必须同时上 Stack Overflow,哈哈。另外,很高兴看到您在上面找到了一个更简单的解决方案。工作越少越好
  • 我确实做到了。我看看能不能给个链接........here's my public profile
  • 哈哈,会的。看来我还是迟到了
  • 抱歉,过去 4 天左右我不在(有一个小假期)。你有什么需要帮助的?我很乐意尝试
【解决方案2】:

我不敢相信我错过了这个。我不知道我是否应该删除这个问题...

  1. 我用了一个简单的[tableView reloadData];
  2. viewDidAppear中使用过;

这两件简单的事情就成功了!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-16
    相关资源
    最近更新 更多