更新UITabBar视图?

时间:2010-10-22 15:02:33

标签: iphone uitabbar

我有一个应用程序,我使用工具栏上的按钮来调用视图,但我将其切换为使用标签栏。

当使用按钮时,我在MainViewController.m中使用以下代码来更新页面上的值,它工作得很好:

-(IBAction) loadSummaryView:(id) sender {
 [self clearView];
 [self.view insertSubview:summaryViewController.view atIndex:0];
 //Update the values on the Summary view
[summaryViewController updateSummaryData];
[summaryViewController calculateData];
}

然而,使用Tab Bar我无法弄清楚如何做到这一点。我尝试将所有必要的代码放在Summary Views viewDidLoad中并加载初始值,但是当我在另一个视图中更改它时它不会更新这些值。

感谢任何帮助。我对此有点新意,所以请不要神秘,因为我可能不理解答案。

谢谢。

2 个答案:

答案 0 :(得分:1)

将代码放在viewDidLoad中,只有在从笔尖加载视图时才会调用它。除非您的内存不足,否则此视图将在应用程序生命周期内保持加载状态。

因此,如果您需要在每次显示视图时更新值,请考虑将该代码移至覆盖viewWillAppear

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    // your stuff goes here...
    [self updateSummaryData];
    [self calculateData];
}

答案 1 :(得分:1)

您可以在视图的viewWillAppear:animated消息中更新当前视图:

如果您已正确设置所有内容,则无需执行任何操作,UITabBarController将显示您的视图,UIViewController将收到viewWillAppear消息,您可以在此处进行更新:

- (void)viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];

    [self updateSummaryData];
    [self calculateData];
}

我强烈建议您阅读View Controller Programming Guide for iOS,其中详细介绍了iPhone支持的主要界面范例。