我使用具有不同视图的故事板,在设置视图中我有一个UISwitch。我希望此开关影响我所有不同视图的状态。例如:如果在设置视图中关闭了开关,则播放视图中将没有声音。如何保存交换机的状态?
我已经搜索过,并且在很多地方都说你必须使用NSUserDefaults,但我完全不明白它是如何工作的。我必须在.m / .h / appdelegate.h / m等中编写什么样的代码?
答案 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"];