课程咨询 : TEL:0571-56020830 QQ:907090242

杭州达内ios培训

  • 达内ios开发:记录用户登陆状态

    发布:杭州达内ios培训班_杭州达内ios培训_杭州ios培训      来源:达内新闻      时间:2015-12-15


  •     NSUserDefault是苹果提供给我们用来存储用户的登陆信息的一个类。杭州达内ios培训专家模拟一个用户登陆和注销的demo,帮助大家学习使用NSUserDefault来存储用户的登陆信息。

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

    Objective-C- (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,代码如下

    Objective-C//判断是否登陆,由登陆状态判断启动页面
    //获取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掉,同时用模态的方式来跳转到登陆页面,代码如下:

    Objective-C- (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:^{
        }];


        4、终得到运行结果,就可以实现记录用户的登陆状态了 。


上一篇:达内:网易新闻ios版的开源组件

下一篇:达内:ios开发Query方法及分页加载

开班日期  |  更多

IOS--零基础全日制

IOS--零基础全日制

开班日期:每月28日

IOS--零基础周末班

IOS--零基础周末班

开班日期:每月28日

IOS--全日制班

IOS--全日制班

开班日期:每月28日

IOS--周末班

IOS--周末班

开班日期:每月28日

  • 地址:杭州市西湖区教工路23号百脑汇科技大厦15楼1508室21
  • 课程培训电话: TEL:0571-56020830 QQ:907090242     全国服务监督电话:400-111-8989
  • 服务邮箱 tousu@tedu.cn
  • 2001-2016 达内时代科技集团有限公司 版权所有 京ICP证8000853号-56