在用户退出应用程序后,我的应用程序再次处于活动状态后,我希望我的UITableView为reloadData
。我知道我需要实现(在我的app委托中):
- (void)applicationDidBecomeActive:(UIApplication *)application
但我不确定如何引用当前的UITableView?
更新: 我的UITableView是一个单独的控制器。它实际上呈现如下
AppDelegate > Root View Controller > Pushes UITabBarController modally which has a UITableViewController
答案 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]; }