我有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]
。然后,问题就解决了。
答案 0 :(得分:0)
很多事情可能出错,因此您需要提供更多信息以缩小范围。
首先,不会调用viewDidLoad,因此您可以从此处删除它。将调用viewWillAppear和viewDidAppear,因此您只需要这两种方法中的一种。
接下来,您需要确定实际问题。
1 - 是self.table查看对表的正确引用?你正确维护参考吗?
2 - 表是实际重新加载但使用旧数据,还是根本没有重新加载?您可以记录willDisplayCell方法以查看视图出现时的情况。
有了这些信息,根本原因可以缩小到可解决的问题。