键盘覆盖单元格时关闭UITableViewController会导致崩溃

时间:2013-02-21 22:14:36

标签: iphone ios ipad

我有一个UITableViewController,其中包含用于静态和可编辑文本的自定义单元格。标准的东西,没什么特别的。

存储单元格数据,以便在重复使用单元格时,将数据放回其中。

问题是:当用户将光标放在UITextField单元格中并且键盘向上时,键盘在表格视图中覆盖三行。在视图控制器的顶部有一个取消按钮,它应该关闭视图控制器。当我调用dismissModalViewController时,键盘会隐藏,但是当视图消失时,UITableViewController想要刷新键盘下面的行。然而,由于表视图试图调用cellForRowAtIndexPath来更新正在被删除的行,因此视图已经处于死亡状态,并且我遇到了崩溃。

我试着等待键盘隐藏。不好。

我尝试重新启动第一个响应者,这样键盘就会消失并在解除视图控制器之前先更新行,但是我找不到任何可以告诉我数据已完成更新的内容。

我需要的是一些事件告诉我表已完成更新,或者告诉表视图不要求代表提供数据,或者告诉表视图在键盘消失时不更新。

或者有一些我很想念的简单。

任何帮助?

2 个答案:

答案 0 :(得分:0)

如果您没有更多的细胞,我建议您为每个细胞制作不同的可重复使用标识符。最好在出列后保存细胞状态

答案 1 :(得分:0)

我解决了自己的问题。在cellForRowAtIndexPath中,我在UITextField中设置了可能不再存在的指针的文本。我解决问题的方法仍然是创建单元格,但在设置文本内部之前,我检查了是否按下了取消按钮,如果是,则返回空单元格。

我希望有更好的解决方案,比如等待细胞完成更新,但这似乎并没有发生。