2014-02-20 8 views
1

Я проверил this & this, а также другие вопросы, связанные с InAppSettingsKit, но не смогли найти решение.
Я загрузил LinPhone, в котором InAppSettingsKit используется для настройки. Теперь, мое требование - мне нужно изменить настройки только для одного конкретного случая после входа в систему, и это будет так же, как и для всех остальных случаев.
Пожалуйста, помогите мне, как я могу изменить настройки для этого случая и где?Различные настройки для InAppSettingKit

+0

более конкретно по вашему вопросу, иначе вы можете получить '-ve' голосов. –

+0

Пожалуйста, будьте более конкретным, неясно, чего вы хотите. –

+0

Вы имеете в виду, какой plist вам нужно изменить? –

ответ

0

Вот краткий пример:

// The name of the settings file, currently this plugin use the InAppSettings.bundle 
NSString *settingsBundle = [[NSBundle mainBundle] pathForResource:@"InAppSettings" ofType:@"bundle"]; 
if(!settingsBundle) { 
    NSLog(@"Could not find Settings.bundle"); 
    return; 
} 

NSDictionary *settings = [NSDictionary dictionaryWithContentsOfFile:[settingsBundle stringByAppendingPathComponent:@"Root~iphone.inApp.plist"]]; 
NSArray *preferences = [settings objectForKey:@"PreferenceSpecifiers"]; 

NSMutableDictionary *defaultsToRegister = [[NSMutableDictionary alloc] initWithCapacity:[preferences count]]; 
for(NSDictionary *prefSpecification in preferences) { 
    NSString *key = [prefSpecification objectForKey:@"Key"]; 
    if(key) { 
     [defaultsToRegister setObject:[prefSpecification objectForKey:@"DefaultValue"] forKey:key]; 
    } 
} 

[[NSUserDefaults standardUserDefaults] registerDefaults:defaultsToRegister]; 
[defaultsToRegister release]; 
[[NSUserDefaults standardUserDefaults] synchronize]; 

Так что вы можете поместить его в AppDelegate на обед, чтобы получить настройки. И тогда вы можете изменить значение, связанное с ключом, используя NSUserDefaults

Примера из получения:

NSUserDefaults *standardUserDefaults = [NSUserDefaults standardUserDefaults]; 
    CGFloat fontSize = 15; 

    if(standardUserDefaults){ 
     fontSize = (CGFloat)[[standardUserDefaults objectForKey:@"fontSize"] floatValue]; 
     if(fontSize == 0) 
      fontSize = 15; 
    } 

Уведомить контроллер на параметры изменения

Чтобы увидеть, если некоторые параметры модифицированных поставить это в вашем viewDidLoad контроллера, о котором вы хотите получить уведомление:

NSNotificationCenter *center = [NSNotificationCenter defaultCenter]; 
[center addObserver:self 
      selector:@selector(defaultsChanged:) 
       name:NSUserDefaultsDidChangeNotification 
      object:nil]; 

И вы должны только реализовать функцию defaultsChanged.

+0

Спасибо. Дай мне попробовать. –

+0

Сообщите мне, если вы хотите получить дополнительную помощь. –

+0

@PiyushDubey Помогает ли мой ответ? Вы не добавили комментарий или не принимали его, хотя это тот способ, которым работает этот плагин. Таким образом, вы не помогаете пользователям SO, вы знаете, что я думал. –

Смежные вопросы