每次单击标签栏项时,如何刷新视图?

时间:2011-10-06 08:41:20

标签: iphone ios cocoa-touch uitabbarcontroller uitabbar

我正在使用TabBar制作应用程序。但是TabBarController不是RootViewController。在标签栏中有4个标签。其中一个选项卡是历史记录,它与显示历史记录的表格视图相关联。我想每次单击时刷新该视图,以便我可以获得更新的tableview。我怎样才能做到这一点?提前谢谢。

4 个答案:

答案 0 :(得分:7)

使用- (void) viewWillAppear:(BOOL)animated更新视图中的任何内容。

- (void) viewWillAppear:(BOOL)animated {
   [super viewWillAppear:animated];
   // You code here to update the view.
}

每次要显示视图时都会调用此方法。

答案 1 :(得分:1)

-(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。

答案 2 :(得分:1)

而不是使用(void)ViewDidLoad使用viewWillAppear:(BOOL)animated

- (void) viewWillAppear:(BOOL)animated {
    [super viewWillAppear:animated];
    //your code 
}

答案 3 :(得分:0)

下面的代码添加了plz ^^

如果更改了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

未添加Apple示例代码[super viewWillAppear:animated];