iOS: как создать функцию «Предпочтения пользователя» - PullRequest
3 голосов
/ 01 августа 2011

У меня есть приложение, основанное на UINavigationController;Я хотел бы добавить страницу «Настройка», где пользователь будет иметь возможность установить некоторые функции, такие как язык и некоторые другие параметры.В настоящее время UIViewController, в котором я хочу, чтобы поля Setting находились в двух уровнях под RootViewController (т. Е. Есть «основной вид» >>, вы нажимаете кнопку и вводите другой UIViewController и формируете там, что вы должны иметь возможность ввести параметр UIViewController).

Мне неясно, как я должен сохранять эти данные и как вызывать их при загрузке приложения.

Я читал некоторые блоги о NSUserDefaults и о Singleton, но я 'Мне не ясно, как их использовать.

Где я должен создать атрибуты данных, которые впоследствии будут поддерживать пользовательские настройки?Должен ли я создать их в AppDelegate или в MySettingsViewController (создаваемый мной UIViewController)?

Следует ли использовать атрибут Singleton, и если да, то где его следует создавать?

Когда вы говорите «Синглтон», вы на самом деле имеете в виду создание статического атрибута?

Есть ли другой способ связи между двумя контроллерами, которые не связаны напрямую друг с другом (я могу передавать данные «снизу»)ViewController для RootViewController, передавая его через UIViewController в середине, но это кажется странным и неэффективным)?

Любое направление / учебное пособие будет оценено!

Ответы [ 2 ]

12 голосов
/ 01 августа 2011

Определенно используйте NSUserDefaults. Это здорово, и Apple рекомендует это.

Чтобы установить настройку:

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

Вы также можете хранить другие вещи, , такие как текст, числа и т. Д. Гораздо больше, чем просто логическое значение.

Чтобы проверить настройку:

if ([[NSUserDefaults standardUserDefaults] boolForKey:@"Setting 1"]) {
    //ok, do the thing here
}
4 голосов
/ 01 августа 2011

Я бы использовал http://inappsettingskit.com/ вместо того, чтобы кататься самостоятельно. Я использовал его почти во всех приложениях, над которыми я работаю, и он отлично справляется с настройками приложения только для такого сценария.

...