iOS:如何创建“用户首选项”功能

时间:2011-08-01 16:27:35

标签: ios static singleton nsuserdefaults setting

我有一个基于UINavigationController的应用程序;我想添加一个“设置”页面,用户可以在其中设置一些功能,如语言和其他一些偏好。 目前我希望设置字段的UIViewController在RootViewController下是2级(即有一个“主视图”>>你点击一个按钮并输入另一个UIViewController并在那里形成你应该能够进入设置UIViewController)。

我不清楚我应该如何保存这些数据,以及如何在应用程序加载时调用它。

我阅读了一些关于NSUserDefaults和关于Singleton的博客,但我不清楚我应该如何使用它们。

我应该在哪里创建稍后会维护用户首选项的数据属性?我应该在AppDelegate或MySettingsViewController(我正在创建的UIViewController)上创建它们吗?

我应该使用Singleton属性吗?如果是,应该在哪里创建它?

当你说“Singleton”时,你的意思是创建一个静态属性吗?

是否有另一种方式在2个不直接连接的控制器之间进行通信(我可以将数据从“底部”ViewController传输到RootViewController,通过中间的UIViewController传递它,但它看起来很奇怪而且效果不佳)?

任何方向/指导将不胜感激!

2 个答案:

答案 0 :(得分:12)

绝对使用NSUserDefaults。这很好,Apple推荐它。

设置设置:

[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"Setting 1"];

您还可以存储其他内容,,例如文本,数字等。不仅仅是一个简单的布尔值。

检查设置:

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Setting 1"]) {
    //ok, do the thing here
}

答案 1 :(得分:4)

我会使用http://inappsettingskit.com/而不是自己动手。我几乎在我工作的每个应用程序中都使用它,并且它完全适用于这种情况下的应用程序设置。