我对Obj-C编程很新,所以请耐心等待。
我有一个标签栏。其中一个选项卡有一个表视图控制器,可将其从SQL数据库中获取的数据转换为数组。 在另一个选项卡中,它有一个重置所有内容的按钮(删除所有数据)。此选项卡的视图控制器成功删除了SQL数据库,但返回表选项卡时表仍然充满了数据。
当从其他视图控制器按下按钮时,如何从内存中卸载表视图控制器?
如果我模拟了内存警告,则表格会清除并在返回选项卡时重建。这就是我在代码中尝试做的事情。
由于
答案 0 :(得分:3)
您需要在UITableView
上致电reloadData
。
在内存警告期间清除它,导致视图控制器每次收到此警告时重新创建自己的视图(如果它当前不可见)。
答案 1 :(得分:1)
我认为您可以使用NSNotifications来完成此任务。
在第一个视图控制器的init方法中输入以下代码:
[[NSNotificationCenter defaultCenter] addObserver:self
selector:@selector(tableViewDataUpdated:)
name:@"DATA_UPDATED"
object:nil];
创建一个tableViewDataUpdated方法,重新加载包含数据的数组,然后在表视图上调用reload。
在第二个视图控制器中,当sql数据库被清除时,调用
NSNotification *notification = [NSNotification notificationWithName:@"DATA_UPDATED" object:nil userInfo:nil];
[[NSNotificationQueue defaultQueue] enqueueNotification:notification postingStyle:NSPostASAP];
最后在第一个视图控制器的dealloc方法中包括:
[[NSNotificationCenter defaultCenter] removeObserver:self];