2010-10-22 71 views
2

我有一个应用程序,我正在使用工具栏上的按钮来调用视图,但我将它切换到使用选项卡栏。更新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]; 
} 

然而,随着标签栏我想不出这个怎么做。我尝试将所有必要的代码放在摘要视图viewDidLoad中,它加载了初始值,但在另一个视图中更改它们时不会更新这些值。

任何帮助表示赞赏。我在这方面有点新,所以请不要模糊,因为我可能不明白答案。

谢谢。

回答

1

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

所以如果你需要每一个视图将出现时间更新值,考虑代码移动到的viewWillAppear

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

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

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

如果你有正确安装的一切,没有什么做的,在UITabBarController会显示您的看法,您的将UIViewController收到viewWillAppear消息,在那里你可以做你的更新:

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

    [self updateSummaryData]; 
    [self calculateData]; 
} 

我强烈建议阅读View Controller Programming Guide for iOS,其中详细描述了iPhone支持的主要接口范例。