我有Tab Bar Controller
。有两个选项卡。第一个是基于某些计算在Table View Controller
上显示一些数据。第二个选项卡用于更改用于计算第一个选项卡数据的变量值。
现在,如果我在第二个标签中更改值并返回第一个标签,则它不会更新第一个标签中的计算值。但是当我再次运行应用程序时它会发生。
我已经通过了许多解决方案,但没有为我工作。我用了
[self.tableView reloadData];
但不适合我。 请帮助。
答案 0 :(得分:1)
每次单击选项卡时,使用 ViewWillAppear 刷新viewController。
与tabViewController一样,ViewController仅加载一次。所以 ViewDidLoad 方法仅在第一次时调用(正如您的应用程序重新启动时那样)。
每次在标签页之间切换时都会调用 viewWillAppear 。
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
//refresh the view controller
}
答案 1 :(得分:0)
请在两个ViewController之间传递数据并将代码放入
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
}
它会起作用。
答案 2 :(得分:0)
您最有可能只在viewDidLoad中调用[self.tableView reloadData];
。由于视图已加载,因此切换选项卡时不会调用此方法。您可以像@Ved
viewWillAppear:
重新加载tableView
- (void)viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
[self.tableView reloadData];
}
否则,您可以将其插入您的setter中。因此,每次计算出的值发生变化时,都会重新加载tableView。