应用程序出现后,如何刷新UITableView?

时间:2010-07-21 15:01:51

标签: iphone objective-c cocoa-touch uitableview multitasking

在用户退出应用程序后,我的应用程序再次处于活动状态后,我希望我的UITableView为reloadData。我知道我需要实现(在我的app委托中):

- (void)applicationDidBecomeActive:(UIApplication *)application

但我不确定如何引用当前的UITableView?

更新: 我的UITableView是一个单独的控制器。它实际上呈现如下

AppDelegate > Root View Controller > Pushes UITabBarController modally which has a UITableViewController

3 个答案:

答案 0 :(得分:30)

跟进Ole上面的回答

在初始化viewcontroller时添加它

[[NSNotificationCenter defaultCenter] addObserver:self 
    selector:@selector(becomeActive:)
    name:UIApplicationDidBecomeActiveNotification
    object:nil];

在控制器中添加实际方法

- (void)becomeActive:(NSNotification *)notification {
    NSLog(@"becoming active");
}

务必清理通知

- (void)dealloc {
    [[NSNotificationCenter defaultCenter] removeObserver:self];
    [super dealloc];
}

答案 1 :(得分:3)

如果您无法从应用代理访问您的视图控制器,您也可以让您的控制器收听UIApplicationDidBecomeActiveNotification通知。

答案 2 :(得分:0)

您可以创建名为TableViewManager的班级。在那里注册UITableView列表,以便您可以刷新所需的任何表。 就像这样,在你的TableViewManager课程中,你有一个名为

的方法
- (void)RefreshTableView:(UITableView *)tableView {
if(tableView != nil)
    [tableView reloadData]; }