我试图使用NSUserDefaults类来保存一堆文本标签信息。具体来说,我有一个带有按钮和标签的视图。单击该按钮时,它会使用"模式"将用户带到另一个视图。连接。在第二个视图中,用户使用滑块设置值。点击后,单个按钮会切换回第一个视图,也可以使用"模式"连接。我想插入一段代码,以便当用户在第二个视图上使用滑块并单击该按钮时,它会将第一个视图上的文本标签更新为滑块的值。
这是我在第二个视图中按钮方法下的代码:
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:@"myValue" forKey@"myKey"];
[defaults synchronize];
_textLabelOnFirstView.text = [defaults stringForKey:@"myKey"];
此外,对于" viewDidLoad"下的相同视图控制器方法,我把以下代码:
NSUserDefaults *defaults = [NsUserDefaults standardUserDefaults];
_textLabelOnFirstView.text = [defaults stringsForKey:@myKey"];
然而,这就是:我打开第一个视图后,单击按钮进入第二个视图。在第二个视图中,我将滑块滑动到100,然后单击按钮。该按钮将我带回第一个视图,但标签从未更新,并且没有说100。如果我关闭应用程序并重新打开,标签仍然是错误的。然而!如果我单击按钮转到第二个视图,然后单击第二个视图的按钮返回到第一个视图(即使没有调整滑块),我现在在文本标签中看到值100。 / p>
任何人都可以建议如何更改我的代码,以便在用户从第二个视图转换回第一个视图后,使用滑块的值更新第一个视图的文本标签?谢谢!
答案 0 :(得分:0)
Matt G指出,使用ViewWillAppear或ViewDidAppear代替ViewDidLoad通过每次出现视图时调用正确解决了我的问题,而不是第一个实例