重新加载标签,其中包含更新的值

时间:2017-05-22 12:44:58

标签: ios objective-c

我有Tab Bar Controller。有两个选项卡。第一个是基于某些计算在Table View Controller上显示一些数据。第二个选项卡用于更改用于计算第一个选项卡数据的变量值。

现在,如果我在第二个标签中更改值并返回第一个标签,则它不会更新第一个标签中的计算值。但是当我再次运行应用程序时它会发生。

我已经通过了许多解决方案,但没有为我工作。我用了

[self.tableView reloadData];

但不适合我。  请帮助。

3 个答案:

答案 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。