iOS 中的基本表格程序 - 如何告诉我的表格从应用程序委托重新加载数据?
Posted
技术标签:
【中文标题】iOS 中的基本表格程序 - 如何告诉我的表格从应用程序委托重新加载数据?【英文标题】:Basic table program in iOS - How can I tell my table to reload data from the application delegate? 【发布时间】:2012-02-07 20:50:38 【问题描述】:我现在已经构建了您的标准表格应用程序。 Window 有一个 UINavigationController 作为它的 rootViewController,并且这个 UINavigationController 是用它的 rootViewController 作为我的自定义 UITableController 初始化的。
我的应用程序表数据随时间而变化。如果我从挂起状态打开我的应用程序,那么我的数据是陈旧的。如何让 applicationWillEnterForeground 更新我的数据?我尝试了一些尴尬的事情,比如
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];
// Override point for customization after application launch.
self.window.backgroundColor = [UIColor whiteColor];
HabitsTable* vc = [[HabitsTable alloc] init];
[vc initCoreData];
UINavigationController* nav = [[UINavigationController alloc] initWithRootViewController:vc];
self.window.rootViewController = nav;
[self.window makeKeyAndVisible];
return YES;
- (void)applicationWillEnterForeground:(UIApplication *)application
[[[[self window] rootViewController] navigationController] rootViewController]
但是,毫不奇怪,这行不通。我不确定如何访问我的 UITableController?
【问题讨论】:
【参考方案1】:我建议使用NSNotificationCenter。你可以看到一个很好的例子来说明如何使用 here 类。
【讨论】:
伙计,这很有帮助。了解 NSNotificationCenter 可能会让我现在重构整个应用程序。谢谢!【参考方案2】:我相信你的仔细尝试:
UINavigationController *navController = (UINavigationController*)[[self window] rootViewController];
HabitsTable *tableView = (HabitsTable*)[navController topViewController];
【讨论】:
啊,topViewController。这很可能是我正在寻找的。我想我会改用 NSNotificationCenter,因为这可能会减少代码重复。以上是关于iOS 中的基本表格程序 - 如何告诉我的表格从应用程序委托重新加载数据?的主要内容,如果未能解决你的问题,请参考以下文章