我有一个包含自定义单元格的表格 View 。我的 TableView 单元格通过插入 SQLite 数据库中的值进行填充。
数据库值显示在我的 TableView 单元格中,但问题是,当我从 TableView 导航到上一个 View ,然后通过导航栏返回 TableView 时, TableView 变为空。可能是什么问题?
最佳答案
已编辑,根据对此答案的评论建议更可能的解决方案
假设您将登录 View 添加为模态视图 Controller ,则需要在每次额外登录后刷新表。在您的 viewWillAppear
方法中重新加载您的 tableView:
[tableView reloadData];
或者,如果您的表格需要一段时间才能重新加载,您可以向 viewController 发送通知,以便在关闭之前从登录 View 重新加载 tableView。
如果内存紧张,操作系统可以随意卸载当前不可见的 View 。一个常见的 iOS 开发错误是假设 viewController 的 viewDidLoad
和 viewDidUnload
方法中的代码只会在 View 首次加载和稍后卸载时调用。检查以确保您的 viewDidLoad
方法不会对数据的可用性做出任何假设,并且您的 viewDidUnload
方法不会意外删除新重新调用的数据viewDidLoad
需要。
同样,请确保您的 viewWillAppear
方法不会受到 viewDidUnload
方法中的某些内容的阻碍。
最后,同样,请了解,如果您的 View 因内存原因被操作系统转储,它有时会在清除 View 时调用您的 viewDidUnload
方法out,但有时似乎没有调用它,也许是因为 View 使用的内存太大,以至于未能在其 didReceiveMemoryWarning
方法中清除内容,导致它决定立即完全转储 View ,而不真正允许它自行清理。
关于objective-c - 使用导航栏离开 View 时 TableView 单元格会丢失数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6027571/