从 AppDelegate 重新加载 tableView

Posted

技术标签:

【中文标题】从 AppDelegate 重新加载 tableView【英文标题】:Reload a tableView from the AppDelegate 【发布时间】:2011-06-12 17:31:28 【问题描述】:

我有一个非常简单的问题,但我仍在寻找有关可可的方法。 我有一个在 Xcode 中创建的普通 rootViewController 应用程序。在 AppDelegate 中,我有一个更新数据库的功能。当运行时收到推送消息 (didReceiveRemoteNotification:) 时,数据会更新。

但是如何获取 RootViewController 的句柄,告诉它更新其对象,然后重新加载表(这是一个函数)?

【问题讨论】:

【参考方案1】:

你可以使用NSNotificationCenter,见NSNotificationCenter Class Reference

在您的rootViewControllerviewDidLoad 中,添加以下内容:

[[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(updateView:) name:@"updateRoot" object:nil];

并添加以下方法:

- (void)updateView:(NSNotification *)notification 
    [myTableView reloadData]; 

在您的AppDelegatedidReceiveRemoteNotification 中,添加以下内容:

[[NSNotificationCenter defaultCenter] postNotificationName:@"updateRoot" object:nil];

【讨论】:

嗯,这值得一问,因为它比我尝试过的任何东西都简单得多,并且对于进一步的功能非常有用!!!谢谢一百万!

以上是关于从 AppDelegate 重新加载 tableView的主要内容,如果未能解决你的问题,请参考以下文章

如何通过iOS Objective C中的appDelegate从另一个视图控制器重新加载表视图

重新加载单元格中没有图像的表格视图重新加载

从 AppDelegate Swift 4 更新 tableView 行

通过 AppDelegate applicationWillEnterForeground 从头开始​​重新加载 UIViewController

使用重新加载数据选择子项后,Tableview 刷新到父视图

从下载的 plist 中重新加载 UITableView 数据