重装表的数据(Reloading a table's data)

2019-09-17 03:51发布

我有5个视图控制器,这是在导航控制器层次结构。 当我达到我的最后一个视图控制器,有一个按钮,让我回到“家”视图控制器(名为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秒。

当试图更新我的CardWalletVC所示的值的过程中,我放置[self.tableView reloadData]; 里面-viewDidLoad-viewWillAppear ,以及- viewDidAppear上述类的。 我试图把它逐一在每个这种方法,但它似乎并没有工作。

高见。

编辑:问题解决了

这一次担任我的向导从另一个标签一个标签页和reloadData保存数据 。

正如我所发现的, -viewDidLoad某一类才会被调用一次,全部在整个应用程序的运行时间。 然而-viewWillAppear ,它会被称为每次出现的查看时间。

所以,我刚搬到我加载保存在从NSUserDefaults的价值观的方式-viewDidLoad-viewWillAppear 。 另外,内部-viewWillAppear我放置在[self.tableView reloadData] 再有,问题就迎刃而解了。

Answer 1:

有很多的事情可以去错了,所以你需要提供更多信息以缩小它。

首先,viewDidLoad中不会被调用,所以你可以从这里将其删除。 无论viewWillAppear中和viewDidAppear将被调用,所以你只需要它的这2种方法之一。

接下来,你需要确定实际的问题是什么。

1 - 是self.tableView适当的参照表? 你是否妥善保养的参考?

2 - 是表实际上重装,但使用旧的数据,或者是不重装呢? 您可以登录该willDisplayCell方法,看看是显示视图时要去。

随着这些信息的根本原因可以缩小到一个解的问题。



文章来源: Reloading a table's data