如何在所有视图控制器中反映UISwitch的状态?

时间:2012-07-12 12:20:30

标签: ios storyboard nsuserdefaults uiswitch

我使用具有不同视图的故事板,在设置视图中我有一个UISwitch。我希望此开关影响我所有不同视图的状态。例如:如果在设置视图中关闭了开关,则播放视图中将没有声音。如何保存交换机的状态?

我已经搜索过,并且在很多地方都说你必须使用NSUserDefaults,但我完全不明白它是如何工作的。我必须在.m / .h / appdelegate.h / m等中编写什么样的代码?

2 个答案:

答案 0 :(得分:0)

当用户激活开关时,您只需要在用户默认值中设置首选项值(例如,声音关闭)。然后在其他视图控制器的viewWillAppear或viewDidAppear方法中获取值以保证持久性。

查看Apple关于Preferences and Settings的文档。

答案 1 :(得分:0)

经过快速阅读后,看起来相当简单。

您首先要创建一个新的本地NSUserObject:

NSUserDefaults *d = [NSUserDefaults standardUserDefaults];

然后您可以从任何视图中为其分配值,在这种情况下,我假设BOOL就足够了:

[d setBool:TRUE forKey:@"switchBOOL"]; 
//the key be understood by you and describes the switch

在其他视图的viewWillLoad中检索值:

NSUserDefaults *d = [NSUserDefaults standardUserDefaults];
[d boolForKey:@"switchBOOL"];