我做了彻底的研究,但似乎没有找到我正在寻找的答案。希望有人可以提供帮助。
我的应用程序中有多个视图控制器,其中一个是“选项”视图,用户可以在其中通过分段控件更改某些设置,例如背景颜色。单击后,用户单击一个按钮将他们的偏好颜色保存到 NSUserDefaults。这非常有效,下次打开应用程序时,仍会选择正确的颜色。但仅在选项视图控制器中。
如何让这个选定的背景颜色加载到我的其他视图控制器中?正如我在选项视图中所做的那样(见下文),我似乎并没有通过将它实现到我的其他视图的 ViewDidLoad 中来让它运行。
我在 options.m 中的代码如下:
- (IBAction)changeColor {
switch (colorControl.selectedSegmentIndex) {
case 0:
[colorView setBackgroundColor:[UIColor redColor]];
break;
case 1:
[colorView setBackgroundColor:[UIColor blackColor]];
break;
case 2:
[colorView setBackgroundColor:[UIColor brownColor]];
break;
default:
break;
}
}
- (IBAction)saveDefaultColor {
int defaultColorInteger = colorControl.selectedSegmentIndex;
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
[userDefaults setInteger:defaultColorInteger forKey:@"defaultColor"];
[userDefaults synchronize];
}
以上是控制和保存按钮。在我的 ViewDidLoad 中,我包含了以下内容:
NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults];
int defaultColorInteger = [userDefaults integerForKey:@"defaultColor"];
[colorControl setSelectedSegmentIndex:defaultColorInteger];
switch (colorControl.selectedSegmentIndex) {
case 0:
[colorView setBackgroundColor:[UIColor redColor]];
break;
case 1:
[colorView setBackgroundColor:[UIColor blackColor]];
break;
case 2:
[colorView setBackgroundColor:[UIColor brownColor]];
break;
default:
break;
这完全按照我的意愿工作,但我无法让它在我的其他视图中工作。谁能帮我解决我似乎缺少的东西?非常感谢