我有一个基于UINavigationController的应用程序;我想添加一个“设置”页面,用户可以在其中设置一些功能,如语言和其他一些偏好。 目前我希望设置字段的UIViewController在RootViewController下是2级(即有一个“主视图”>>你点击一个按钮并输入另一个UIViewController并在那里形成你应该能够进入设置UIViewController)。
我不清楚我应该如何保存这些数据,以及如何在应用程序加载时调用它。
我阅读了一些关于NSUserDefaults和关于Singleton的博客,但我不清楚我应该如何使用它们。
我应该在哪里创建稍后会维护用户首选项的数据属性?我应该在AppDelegate或MySettingsViewController(我正在创建的UIViewController)上创建它们吗?
我应该使用Singleton属性吗?如果是,应该在哪里创建它?
当你说“Singleton”时,你的意思是创建一个静态属性吗?
是否有另一种方式在2个不直接连接的控制器之间进行通信(我可以将数据从“底部”ViewController传输到RootViewController,通过中间的UIViewController传递它,但它看起来很奇怪而且效果不佳)?
任何方向/指导将不胜感激!
答案 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/而不是自己动手。我几乎在我工作的每个应用程序中都使用它,并且它完全适用于这种情况下的应用程序设置。