我有一个基于UINavigationController的应用程序;我希望添加一个"设置"页面,用户将有能力设置一些功能,如语言和其他一些偏好。目前的UIViewController,我希望有设置字段在RootViewController下的2个级别(即有一个"主视图">>你点击一个按钮,然后输入另一个UIViewController和表单,你应该能够进入设置UIViewController)。
我不清楚我应该如何保存这些数据,以及如何在应用程序加载时调用它。
我读了一些关于NSUserDefaults和Singleton的博客,但我不清楚我应该如何使用它们。
我应该在哪里创建以后将维护用户首选项的数据属性?我应该在AppDelegate上还是在MySettingsViewController(我正在创建的UIViewController)上创建它们?
我应该使用单例属性吗?如果是,它应该在哪里创建?
当你说"单例"时,你实际上是指创建一个静态属性吗?
是否有另一种方式来通信2个控制器之间不直接连接到另一个(我可以从"底部"ViewController传输数据到RootViewController通过它在中间的UIViewController,但它似乎奇怪和无效)?
任何指导/教程将不胜感激!
一定要使用NSUserDefaults。它很棒,苹果推荐它。
设置:
[[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"Setting 1"];
您还可以存储其他东西,如文本,数字等。远不止一个简单的布尔值。
查看设置:
if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Setting 1"]) {
//ok, do the thing here
}
我会使用http://inappsettingskit.com/而不是自己滚动。我在几乎所有的应用程序中都使用过它,它可以完美地处理这种场景的应用程序设置。