How to get the nsuserdefault value in other viewcontrollers

前端 未结 4 610
迷失自我
迷失自我 2020-12-25 09:08

I have two viewcontrollers. In my first viewcontroller:

{           
    NSString *string=textField.text;  
    NSUserDefaults *data = [NSUserDefaults standa         


        
相关标签:
4条回答
  • 2020-12-25 09:29

    In the other ViewController,

    NSUserDefaults *data = [NSUserDefaults standardUserDefaults];  
    NSString *string = [data objectForKey:@"strings"];
    

    This will work because NSUserDefaults are a global key-value store that will persist across classes and applications.

    0 讨论(0)
  • 2020-12-25 09:35

    Here you can use this in anyway in your application for store value of NSUserDefaults.

    // --- Saving
    
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    // saving an NSString
    [prefs setObject:@"TextToSave" forKey:@"keyToLookupString"];  
    // saving an NSInteger
    [prefs setInteger:42 forKey:@"integerKey"];
    // saving a Double
    [prefs setDouble:3.1415 forKey:@"doubleKey"];
    // saving a Float
    [prefs setFloat:1.2345678 forKey:@"floatKey"];
    // This is suggested to synch prefs, but is not needed (I didn't put it in my tut)
    [prefs synchronize];
    

    Here you can use this in anyway in your application for get value of NSUserDefaults.

    // --- Retrieving
    
    NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
    // getting an NSString
    NSString *myString = [prefs stringForKey:@"keyToLookupString"];
    // getting an NSInteger
    NSInteger myInt = [prefs integerForKey:@"integerKey"];
    // getting an Float
    float myFloat = [prefs floatForKey:@"floatKey"];
    
    0 讨论(0)
  • 2020-12-25 09:37
    NSUserDefaults * defaults =  [NSUserDefaults standardUserDefaults]; 
    NSString *myString = [defaults stringForKey:@"strings"];
    

    THis is the way to retrieve the data. Please note NSUserDefault is not used to pass data between two controllers. There are better methods for that.

    Edit : After seeing Shaan Singh's comment

    To pass data 2 view controllers you can declare a property in second view controller and access that from the present view controller.

    It is already answered brilliantly here.

    0 讨论(0)
  • you can access NSUserDefaults in any controller (Any class of your application) of your application with the same code you have written in one class.

    for getting the string value use the below code

    NSUserDefaults *data = [NSUserDefaults standardUserDefaults];  
    NSString *myString = [data objectForKey:@"strings"];
    
    0 讨论(0)
提交回复
热议问题