我有2个View Controller,其中一个有一个字符串(例如" Text1 Text2"),当按下一个按钮时,它会将其保存到默认用户数据:
[[NSUserDefaults standardUserDefaults] setObject:textObject forKey:@"textObjectKey"];
这个按钮在第二个视图控制器上有一个popover演示文件,它在viewDidLoad
中检索字符串:
[[NSUserDefaults standardUserDefaults] stringForKey:@"textObjectKey"];
并将setText
方法调用textView
以包含字符串。
这确实有效,但我的问题是,当我更改字符串(例如" Text1 Text2 Text3")并单击按钮时,textView不再显示下一个文本,直到我再次按下它。不仅如此,如果我第一次按下按钮再次运行项目,它将会显示上次运行程序时的文本(直到我再次单击它)。
这是否延迟'我可以解决的问题?或者这是iOS的一个错误(我认为这只是因为它保留了以前程序执行的信息)。
修复编辑:菜鸟错误。我把使用segue将按字符串方法存储在用户数据中的字符串的语句。
答案 0 :(得分:0)
如果这就是您对文本所做的一切,我会说这是一个缓慢的解决方案。在我看来,直接在下一个控制器上设置属性会更好。 但是,在存储到NSUserDefaults后,请调用
[[NSUserDefaults standardUserDefaults] synchronize];
否则,它会在感觉就像写入持久存储。