在 AppDelegate 中使用 ViewController 中的数组
Posted
技术标签:
【中文标题】在 AppDelegate 中使用 ViewController 中的数组【英文标题】:Using Array from ViewController in AppDelegate 【发布时间】:2013-07-09 23:30:12 【问题描述】:我有一个存储在 ViewController.m 中的数组。但是当应用程序进入后台时,我想从数组中发布通知。
所以我的 NSMutableArray “列表”是在 ViewController.m 中创建的,但我需要在 AppDelegate.m 中使用
- (void)applicationDidEnterBackground:(UIApplication *)application
for (NSString *thing in list)
UILocalNotification *notif = [[UILocalNotification alloc] init];
notif.alertBody = thing.text;
[[UIApplication sharedApplication] presentLocalNotificationNow:notif];
【问题讨论】:
【参考方案1】:如果 ViewController.m 是你的主要 VC:
ViewController *yourVC = (ViewController*)self.window.rootViewController;
yourVC.yourMutableArray = whateverYouWant;
我建议将数据保存在 NSUserDefaults 中,然后您可以轻松访问它并在任何地方读/写。顺便说一句,在 appDelegate 中从该方法显示 localNotifications 是一个坏主意。当有人试图离开应用程序时,应用程序商店不会喜欢立即通知......如果你甚至可以这样做的话。
【讨论】:
上面的代码应该放在应用程序委托中......但是你应该按照我所说的 NSUserDefaults 来代替。以上是关于在 AppDelegate 中使用 ViewController 中的数组的主要内容,如果未能解决你的问题,请参考以下文章
以编程方式将 leftBarButtonItem 添加到应用程序
*** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[ViewCon