我有一个应用程序,我使用工具栏上的按钮来调用视图,但我将其切换为使用标签栏。
当使用按钮时,我在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中并加载初始值,但是当我在另一个视图中更改它时它不会更新这些值。
感谢任何帮助。我对此有点新意,所以请不要神秘,因为我可能不理解答案。
谢谢。
答案 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支持的主要界面范例。