【问题标题】:iOS: How to Create a "User Preference" FeatureiOS:如何创建“用户偏好”功能
【发布时间】:2011-10-17 14:30:59
【问题描述】:

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

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

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

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

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

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

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

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

【问题讨论】:

    标签: ios static singleton nsuserdefaults setting


    【解决方案1】:

    一定要使用 NSUserDefaults。很棒,Apple 推荐它。

    设置设置:

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

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

    检查设置:

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

    【讨论】:

    • InAppSettingsKit 在幕后使用 NSDefaults。为什么要重新发明轮子?
    • 我没有看到另一条评论,但不是下载套件,如果您想做一件事,只需两行。并且 NSUserDefaults 可以用于更多的事情,而不仅仅是设置。例如,记住应用内购买。
    • 杰克,我应该如何使用你的建议?我有几个问题:
    • 1.我需要为此“#import”任何标题吗?
    • 2.如果我在堆栈中的 UIViewController 编号 3 中“保存”用户首选项,那么我可以简单地从第一个 UIViewController 调用它还是需要以某种方式传递数据(比如有一个单例对象或通过 popViewController 方法传递它通过堆叠的 UIViewControllers 回来)?
    【解决方案2】:

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

    【讨论】:

    • 感谢参考!我一定会检查的。
    • 精彩推荐。
    猜你喜欢
    • 1970-01-01
    • 2021-11-18
    • 1970-01-01
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 2010-09-07
    相关资源
    最近更新 更多