我有一个具有自定义单元格的表格视图。我的表视图单元格通过插入SQLite数据库中的值填充。
数据库值显示在表视图单元格中,但是问题是,当我从表视图导航到上一个视图,并通过导航栏回到表视图时,表视图变为空。可能是什么问题?
最佳答案
已编辑,以根据对此答案的评论提出更可能的解决方案
假设您将登录视图添加为模式viewController,则每次其他登录后都需要刷新表。在您的viewWillAppear
方法中,重新加载tableView:
[tableView reloadData];
或者,如果您的表需要一段时间来重新加载,则可以在关闭前将通知发送到viewController以从登录视图重新加载tableView。
如果内存不足,操作系统可以随意卸载当前不可见的视图。 iOS开发中的一个常见错误是假设viewController的
viewDidLoad
和viewDidUnload
方法中的代码仅在首次加载视图并随后将其卸载时才调用。检查以确保您的viewDidLoad
方法没有对数据的可用性做任何假设,并且您的viewDidUnload
方法没有意外删除新调用的viewDidLoad
所需的数据。同样,请确保您的
viewWillAppear
方法不会受到viewDidUnload
方法中某些内容的阻碍。最后,以同样的方式理解,如果操作系统出于内存原因而将视图转储,它有时会在清除时调用
viewDidUnload
方法,但有时似乎不会调用它,可能是因为所使用的内存该视图是如此强大,以至于无法通过其didReceiveMemoryWarning
方法清除所有内容,因此决定立即完全转储该视图,而无需真正清理它。