我有一个具有自定义单元格的表格视图。我的表视图单元格通过插入SQLite数据库中的值填充。

数据库值显示在表视图单元格中,但是问题是,当我从表视图导航到上一个视图,并通过导航栏回到表视图时,表视图变为空。可能是什么问题?

最佳答案

已编辑,以根据对此答案的评论提出更可能的解决方案

假设您将登录视图添加为模式viewController,则每次其他登录后都需要刷新表。在您的viewWillAppear方法中,重新加载tableView:

[tableView reloadData];


或者,如果您的表需要一段时间来重新加载,则可以在关闭前将通知发送到viewController以从登录视图重新加载tableView。



如果内存不足,操作系统可以随意卸载当前不可见的视图。 iOS开发中的一个常见错误是假设viewController的viewDidLoadviewDidUnload方法中的代码仅在首次加载视图并随后将其卸载时才调用。检查以确保您的viewDidLoad方法没有对数据的可用性做任何假设,并且您的viewDidUnload方法没有意外删除新调用的viewDidLoad所需的数据。

同样,请确保您的viewWillAppear方法不会受到viewDidUnload方法中某些内容的阻碍。

最后,以同样的方式理解,如果操作系统出于内存原因而将视图转储,它有时会在清除时调用viewDidUnload方法,但有时似乎不会调用它,可能是因为所使用的内存该视图是如此强大,以至于无法通过其didReceiveMemoryWarning方法清除所有内容,因此决定立即完全转储该视图,而无需真正清理它。

10-08 06:59
查看更多