2

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

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

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

现在,我想要更新 my 中的值CardWalletViewController,即来自 my 的卡片的积分PointsResultsVC。请注意,此点保存在NSUserDefaults 中。

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

建议请。

编辑:问题已解决

这个作为我的指南Save data from a tab and reloadData in another tab

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

因此,我只是将加载保存在 NSUserDefaults 中的值的方式 -viewDidLoad-viewWillAppear. 另外,-viewWillAppear我在里面放置了[self.tableView reloadData]. 然后,问题解决了。

4

1 回答 1

0

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

首先,不会调用 viewDidLoad ,因此您可以从此处将其删除。viewWillAppear 和 viewDidAppear 都会被调用,所以你只需要这两种方法之一。

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

1 - self.tableView 是对表格的正确引用吗?您是否正确维护参考?

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

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

于 2012-05-10T03:48:19.667 回答