2012-07-12 36 views
-1

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

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

+0

在这个环节,你会发现一个教程,MIG有用:http://www.iphonesdkarticles.com/2008/08/application-preferences.html – WhiteTiger 2012-07-13 15:05:07

回答

0

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

检查苹果的文档约Preferences and Settings

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"]; 
+0

我应该在哪里写这些代码行?这足以解决我的问题吗?我是新手在编程.. – 2012-07-14 08:09:48

+0

这不是一个真正的问题,我可以回答。我建议不要在应用程序代理中设置值。我会假设在视图故事板的ViewDidLoad中首先推送。 – achi 2012-07-14 15:17:52

相关问题