ios - UIlabel 问题 : Keep the string value after app is closed?

标签 ios objective-c uilabel nsuserdefaults

因此,这里的一位用户设法向我展示了如何通过字符串将数据从 subview Controller 传递到父 View Controller 。

所以现在字符串被传递了,但是,我希望该值在应用程序关闭并重新打开后保持显示在 firstViewController 上。

顺便说一句,该值与 NSUserDefaults 一起保存,并且我在控制台上看到的 NSLog 保存在应用程序文件夹中,但该值未保存到 UILabel 显示器上。

它仅在我保存时显示它,然后我关闭并重新打开,它消失了,但在 NsLog 中它仍然在应用程序内,但不在显示 UILabel 上。

我该如何解决这个问题?

在我的 appDelegate.h 我有一个

 @property (strong, nonatomic) NSString *sharedString;

将 secondViewController 数据传递给 firstViewController。

在我的 secondViewController 的保存方法中,我有一个与
AppDelegate.h 声明是:
AppDelegate *apiDelegate = [[UIApplication sharedApplication] delegate]
apiDelegate.sharedString = self.textFieldData.text;

在我的 firstViewController 中,我有一个显示第二个数据的方法
View Controller :
   -(void) viewDidAppear:(BOOL)animated {
    AppDelegate *apiDelegate = [[UIApplication sharedApplication] delegate]
    self.DisplayData.text = appDelegate.sharedString;
     [super viewDidAppear: NO];

应用程序关闭后是否有问题无法保持数据完整
我在这里错过了什么?

最佳答案

So one of the users in here managed to show me how to pass data from a child view controller to a parent view controller via a string.



首先,您需要建立一些层次结构,以了解如何从 parentViewController 获取 childViewController。将数据从 childViewController 传递到 parentViewController 的一种方法是使用委托(delegate)。另一个可能是使用 KVC/KVO 协议(protocol)。 https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/KeyValueObserving/KeyValueObserving.html

在这种情况下,您可以简单地为 childViewController 中定义的属性注册一个观察者,并在您想要的任何地方观察它的变化(好吧,假设层次结构得到满足)。

保存值(value)。你可以简单地使用 NSUserDefaults 保存它。我在您的帖子中没有看到任何代码,但您可以简单地定义一个键并使用 NSUserDefaults 保存值:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:sharedString forKey:@"sharedString"];
NSString *sharedStringFromDefaults = [defaults objectForKey:@"sharedString"];

还,

AppDelegate *apiDelegate = [[UIApplication sharedApplication] delegate]



Apple 要求您在应用程序中避免此类引用。它只限制应用程序。此外,sharedString 不需要在 AppDelegate 中。否则 AppDelegate 将被您在应用程序中共享的几乎所有其他数据结构填充。

关于ios - UIlabel 问题 : Keep the string value after app is closed?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19580737/

相关文章:

ios - 使用 uiscrollview 进行图像缩放无法正常工作。 swift

ios - 单例不返回任何图像

objective-c - objective-c 的验证

objective-c - 如何使 UIView 可点击

iphone - 从 iPhone 中的 UILabel 复制文本

ios - 为什么让 viewController 解雇自己是不好的做法?

c# - 如何尾部截断 UILabel 中的某些文本

objective-c - iOS 上的 CoreLocation 仅在一定时间内监视后台的位置变化?

ios - 归档应用程序时 Xcode 提示丢失文件

swift - 部分标签可点击并同时加粗