Objective c 使用导航栏离开视图时,表视图单元格将丢失其数据

Objective c 使用导航栏离开视图时,表视图单元格将丢失其数据,objective-c,ios,sqlite,uitableview,uinavigationbar,Objective C,Ios,Sqlite,Uitableview,Uinavigationbar,我有一个具有自定义单元格的表视图。我的表视图单元格通过插入到SQLite数据库中的值填充 数据库值显示在我的表视图单元格中,但问题是,当我从表视图导航到上一个视图,然后通过导航栏返回到表视图时,表视图变为空。可能有什么问题?编辑后,根据对此答案的评论,提出更可能的解决方案 假设您将登录视图添加为模式viewController,则需要在每次额外登录后刷新表。在您的视图中将出现方法重新加载您的tableView: [tableView reloadData]; 或者,如果重新加载表需要一段时间,

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

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

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

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

[tableView reloadData];
或者,如果重新加载表需要一段时间,则可以向viewController发送通知,以便在关闭表视图之前从登录视图重新加载该表视图


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

类似地,确保您的
视图将出现
方法没有受到
视图卸载
方法中某些内容的阻碍


最后,也是同样的道理,如果您的视图由于内存原因被操作系统转储,它有时会调用您的
viewDidUnload
方法来清除它,但有时似乎不会调用它,可能是因为视图使用的内存太大,以至于在其
didReceiveMemoryWarning
方法中无法清除内容,导致它决定立即完全转储视图,而不允许它真正清理自己。

您如何来回导航。似乎存在表视图重用的问题。您需要根据您当前所在的视图填充tableview。嗨@Praveen,我正在使用“后退导航”按钮向后导航,然后在navigationControlleri上使用pushviewcontroller再次向前导航。我没有在视图中执行任何代码。我的卸载方法controller@Rani好的,你明白我的其他建议了吗?您的
viewDidLoad
是否希望某些不再可用的数据就位?是否有一些意外的状态更改使
viewDidLoad
viewwillbeen
方法出现在viewController中,其中的表失败?此外,可能是表的viewController中的
viewDidUnload
方法中应该包含代码,重置应用程序状态的东西。当用户输入用户名和密码并单击“提交”按钮时,我有一个登录控制器。表视图从数据库获取数据并显示数据,但问题是当我单击导航栏上的左侧导航栏项时,会再次弹出到我的登录控制器并输入凭据并单击提交按钮。tableview为空。可能是什么原因problem@Rani哪种方法将viewController中的表格单元格数据与表格一起加载
viewDidLoad
视图将出现
?您好@Frederick,viewDidLoad方法将在viewcontroller中加载表格单元格数据