【发布时间】:2011-12-02 02:05:26
【问题描述】:
我正在使用 TabBar 制作应用程序。但是 TabBarController 不是 RootViewController。在选项卡栏中有 4 个选项卡。其中一个选项卡是历史,它与显示历史的表格视图链接。每次单击该视图时,我都想刷新该视图,以便获得更新的表格视图。我怎样才能做到这一点?提前致谢。
【问题讨论】:
标签: iphone ios cocoa-touch uitabbarcontroller uitabbar
我正在使用 TabBar 制作应用程序。但是 TabBarController 不是 RootViewController。在选项卡栏中有 4 个选项卡。其中一个选项卡是历史,它与显示历史的表格视图链接。每次单击该视图时,我都想刷新该视图,以便获得更新的表格视图。我怎样才能做到这一点?提前致谢。
【问题讨论】:
标签: iphone ios cocoa-touch uitabbarcontroller uitabbar
下面的代码添加请 ^^
如果你改变了一个tabBarIndex,同时调用了-(void)viewWillAppear。
-(void)viewWillAppear:(BOOL)animated
{
// force the tableview to load
[tableView reloadData];
}
参考 Apple 示例代码:这是关于 UITabBarController 的非常棒的教程 http://developer.apple.com/library/ios/#samplecode/TheElements/Introduction/Intro.html
没有添加苹果示例代码[super viewWillAppear:animated];
【讨论】:
[super viewWillAppear:animated];。
使用- (void) viewWillAppear:(BOOL)animated 更新您视图中的任何内容。
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
// You code here to update the view.
}
每次视图即将显示时都会调用此方法。
【讨论】:
- (void) viewWillAppear:(BOOL)animated 添加到UIViewController而不是UIView
-(void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:YES];
if ([Globals sharedInstance].isFromFindSimiler)
{
[self.view addSubview:_findSimilerView];
[_historyTableView setFrame:CGRectMake(0, 85, 320, 490)];
}
else
{
[self history_webservice];
}
}
我已经做到了。在这种情况下,每当历史屏幕上的用户选项卡时,我都会调用 Web 服务以获取历史记录并更新 tableview。
【讨论】:
不要使用(void)ViewDidLoad,而是使用viewWillAppear:(BOOL)animated
- (void) viewWillAppear:(BOOL)animated {
[super viewWillAppear:animated];
//your code
}
【讨论】: