传递数据并不是诀窍...我需要在调用AppDelegate中的函数时从视图控制器中提取字符串数据。这是代码:
在App代表中:
- (void)applicationDidEnterBackground:(UIApplication *)application
{
AMViewController *viewController = [[AMViewController alloc] initWithNibName:@"AMViewController" bundle:nil];
self.xpData = viewController.xpLabel.text;
NSLog(@"Value of xpString in AD: %@", self.xpData);
}
在我的ViewController中,我没有使用动作来传递/检索字符串。当用户点击主页按钮时,我基本上从ViewController中拉出它。我之所以这样做,是因为我想在退出时保存我的数据。谢谢!
答案 0 :(得分:0)
您是否尝试过使用NSNotificationCenter
或共享代表:
答案 1 :(得分:0)
在AppDelegate.h
@property (atomic, copy) NSString *yourString;
您已更改xpLabel.text
的位置,请执行此操作
AppDelegate *appDelegate = (AppDelegate *)[[UIApplication sharedApplication] delegate];
appDelegate.yourString = xpLabel.text;
现在在
- (void)applicationDidEnterBackground:(UIApplication *)application
{
NSLog(@"Value of xpString in AD: %@", self.yourString);
}
另一种方法
在AMViewController
类中设置您的值
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
[prefs setObject:xpLabel.text forKey:@"yourkey"];
[prefs synchronize];
在applicationDidEnterBackground
中获取您的价值
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
yourString = [prefs stringForKey:@"yourkey"];