iOS开发之记录用户登陆代码实现

原文:http://www.cnblogs.com/ludashi/p/3950951.html


NSUserDefault是苹果提供给我们用来存储用户的登陆信息的一个类,当然是持久化的了,废话不多说了。我们就模拟一个用户登陆和注销的demo来学习一下如何使用NSUserDefault来存储用户的登陆信息。 

1.首先我们得有一个登陆页面对应的类为ViewController.h, 在登陆页面有两个TextField和一个Button用来接受用户的输入,在点击Button中的回调的方法中,如果用户登陆成功,则把用户信息存入UserDefault中,然后以模态的方式来跳转到主界面,首先我们要获取UserDefault的单例,登陆页面中的登陆按钮回调的方法代码如下: 

       - (IBAction)tapLogin:(id)sender { 
           //获取用户输入的信息 
           NSString *username = self.usernameTextField.text; 
           NSString *password = self.passwordTextField.text; 
           //对用户信息的验证 
           if ([username isEqualToString:password]){ 
               //获取userDefault单例 
               NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
               //登陆成功后把用户名和密码存储到UserDefault 
               [userDefaults setObject:username forKey:@"name"]; 
               [userDefaults setObject:password forKey:@"password"]; 
                [userDefaults synchronize]; 
               //用模态跳转到主界面 
               UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; 
               id mainViewController = [storyboard instantiateViewControllerWithIdentifier:@"MainView"]; 
               [self presentViewController:mainViewController animated:YES completion:^{ 
               }]; 
           } 
       } 

2.处理完登陆页面,我们会处理根据UserDefault中的name属性是否有值来选择加载哪个页面。在storybaord中我们默认的是主界面,在AppDelegate.m中如果未登陆,我们会设置一下rootViewController,代码如下

       //判断是否登陆,由登陆状态判断启动页面 
       //获取UserDefault 
       NSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults]; 
       NSString *name = [userDefault objectForKey:@"name"]; 
       //获取storyboard 
       UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; 
       //如果用户未登陆则把根视图控制器改变成登陆视图控制器 
       if (name == nil) 
       { 
           NSLog(@"%@",name); 
           id view = [storyboard instantiateViewControllerWithIdentifier:@"LoginView"]; 
           self.window.rootViewController = view; 
       } 

3.经过上面的代码我们就可以根据用户登陆状态来选择加载的信息,在登陆后的页面中,我们添加一个按钮,用来退出。在退出按钮回调的方法中,我们需要把之前保存的用户信息进行remove掉,同时用模态的方式来跳转到登陆页面,代码如下: 

       - (IBAction)tapLoginOut:(id)sender { 
           //获取UserDefaults单例 
           NSUserDefaults *userDefaults = [NSUserDefaults standardUserDefaults]; 
           //移除UserDefaults中存储的用户信息 
           [userDefaults removeObjectForKey:@"name"]; 
           [userDefaults removeObjectForKey:@"password"]; 
            [userDefaults synchronize]; 
           //获取storyboard 
           UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; 
           //获取注销后要跳转的页面 
           id view = [storyboard instantiateViewControllerWithIdentifier:@"LoginView"]; 
           //模态展示出登陆页面 
           [self presentViewController:view animated:YES completion:^{ 
           }]; 

下面的截图是在storyboard中的截图,运行出的效果和下面一样,到此我们就可以实现记录用户的登陆状态了 



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值