-1

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

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

4

2 回答 2

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"];
于 2012-07-13T15:11:10.870 回答
0

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

检查苹果关于Preferences and Settings的文档。

于 2012-07-13T15:06:28.467 回答