重新加载表格的数据

时间:2012-05-10 03:35:45

标签: iphone ios xcode uitableview reload

我有5个视图控制器,它们位于导航控制器层次结构中。当我到达我的上一个视图控制器时,有一个按钮可以让我回到“Home”视图控制器(名为CardWalletViewController),它是一个表视图控制器。这是我在上一个VC(PointsResultsVC

中的方法
- (IBAction)homePressed:(id)sender {
    NSArray *VCs = [self.navigationController viewControllers];
    [self.navigationController popToViewController:[VCs objectAtIndex:0] animated:YES];
}

CardWalletVC的单元格正在填充来自NSUserDefaults中保存的卡实例的值,并且工作正常。

现在,我想要的是更新CardWalletViewController中的值,这是来自我PointsResultsVC的卡片的点数。请注意,此点保存在NSUserDefault s。

在尝试更新我的CardWalletVC中显示的值的过程中,我将[self.tableView reloadData];放在所述类的-viewDidLoad-viewWillAppear和 - viewDidAppear内。我尝试在每种方法中逐一放置它,但它似乎不起作用。

建议请。

编辑:问题已解决

这个作为我的向导Save data from one tab and reloadData in another tab

正如我所发现的那样,某个类的-viewDidLoad只会在整个app的运行时被调用一次。而-viewWillAppear,每次出现视图时都会调用它。

所以,我只是改变了我将NSUserDefaults中保存的值从-viewDidLoad加载到-viewWillAppear的方式。另外,在-viewWillAppear内,我放置了[self.tableView reloadData]。然后,问题就解决了。

1 个答案:

答案 0 :(得分:0)

很多事情可能出错,因此您需要提供更多信息以缩小范围。

首先,不会调用viewDidLoad,因此您可以从此处删除它。将调用viewWillAppear和viewDidAppear,因此您只需要这两种方法中的一种。

接下来,您需要确定实际问题。

1 - 是self.table查看对表的正确引用?你正确维护参考吗?

2 - 表是实际重新加载但使用旧数据,还是根本没有重新加载?您可以记录willDisplayCell方法以查看视图出现时的情况。

有了这些信息,根本原因可以缩小到可解决的问题。