0

I am new IOS to Development .I want to know about the Keychain process for storing the user name .My concept is ..if User is already logged in i need to show a password screen if not i need to show a user name screen to enter .

When i need to show the user name screen means ,in two scenarios

 1)Not yet user logged in -First Time Login 
 2)Logged in and logout from the app by pressing logout button in password screen 

This much of code only i did in app delegate ,here what i am doing is i am just storing the username in NSUserDefaults and if user name exists then i am showing second screen i.e., Password screen .

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {

ViewController *controller = (ViewController *)self.window.rootViewController;

NSUserDefaults *User = [NSUserDefaults standardUserDefaults];

NSString *userid = [User stringForKey:@"userName"];

if (userid != nil)
{

    self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    // determine the initial view controller here and instantiate it with
    UIViewController *viewController =  [storyboard instantiateViewControllerWithIdentifier:@"PassVC"];

    self.window.rootViewController = viewController;
    [self.window makeKeyAndVisible];
}
else
{

    self.window = [[UIWindow alloc] initWithFrame:UIScreen.mainScreen.bounds];
    UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:nil];
    // determine the initial view controller here and instantiate it with
    UIViewController *viewController =  [storyboard instantiateViewControllerWithIdentifier:@"LoginVC"];

    self.window.rootViewController = viewController;
    //viewController.man
    [self.window makeKeyAndVisible];
}

return YES;
}

Now , What i want is ,instead of storing userid in NSUser Defaults, i want to store userid in keychain .I don't have knowledge about the keychain .i searched in google but i didn't found anything clearly .Whether i need to include any frameworks for keychain ??Please anyone help me with the example code .Thanks in Advance !!!

Thanks of the reply .. i have created the keychain .when i tried to print the keychain object it is showing nil.i don't know why? this is my code..

         This is my ViewController.h
         #import <UIKit/UIKit.h>
         #import "KeychainItemWrapper.h"
         @interface ViewController : UIViewController            {
          KeychainItemWrapper *keyChain ;}

      @property (weak, nonatomic) IBOutlet UIView *sub_View;
      @property (weak, nonatomic) IBOutlet UITextField *UserId_txt;
      @property (weak, nonatomic) IBOutlet UIButton *clickMe_btn;
      - (IBAction)btn1:(id)sender;
      @end
   This is my View Controller .m 
   #import "ViewController.h"
   #import "PasswordViewController.h"
   #import "KeychainItemWrapper.h"
  @interface ViewController ()
  @end
  @implementation ViewController

- (void)viewDidLoad {
[super viewDidLoad];

self.UserId_txt.delegate = self;
NSString *userid = self.UserId_txt.text;
[keyChain setObject:userid forKey:@"user_id"];
  }

    - (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
     }
    -(BOOL) textFieldShouldReturn:(UITextField *)textField{
  [textField resignFirstResponder];
  return YES;
  }
  - (IBAction)btn1:(id)sender {

    NSString *user =[keyChain objectForKey:@"user_id"];
NSLog(@" the user id is :%@",user);


PasswordViewController *PassVC = [self.storyboard instantiateViewControllerWithIdentifier:@"PassVC"];


[self.navigationController pushViewController:PassVC animated:YES];
}
@end
Agal Sivamanoj
  • 111
  • 1
  • 11
  • have allok at this http://stackoverflow.com/a/6972305/2522603 , can try this too http://stackoverflow.com/a/8573066/2522603 – ChenSmile Sep 23 '16 at 17:30
  • Thanks Imran , the one which you send is swift ,i want in objective -c,Please tell me that to help me – Agal Sivamanoj Sep 23 '16 at 17:37
  • Possible duplicate of [iOS: How to store username/password within an app?](http://stackoverflow.com/questions/6972092/ios-how-to-store-username-password-within-an-app) – Ankush soni Sep 23 '16 at 18:04

0 Answers0