3

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

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

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

我应该在哪里创建稍后将维护用户偏好的数据属性?我应该在 AppDelegate 还是在 MySettingsViewController(我正在创建的 UIViewController)上创建它们?

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

当您说“单例”时,您实际上是指创建静态属性吗?

是否有另一种方法可以在两个不直接连接的控制器之间进行通信(我可以将数据从“底部”ViewController 传输到 RootViewController,通过中间的 UIViewController 传递它,但这似乎很奇怪且无效)?

任何方向/教程将不胜感激!

4

2 回答 2

12

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

要设置设置:

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

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

检查设置:

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Setting 1"]) {
    //ok, do the thing here
}
于 2011-08-01T17:00:35.227 回答
4

我会使用http://inappsettingskit.com/而不是自己动手。我几乎在我处理的每个应用程序中都使用过它,它可以完美地处理这种情况下的应用程序设置。

于 2011-08-01T16:29:13.157 回答