美文网首页
IOS开发之记录用户登陆状态,ios开发用户登陆

IOS开发之记录用户登陆状态,ios开发用户登陆

作者: 皮皮瑞 | 来源:发表于2017-03-21 16:22 被阅读0次

如何记录用户的登陆状态呢? 用我们的CoreData蛮? CoreData适合处理大量的数据,一般和TableView来结合起来使用,当然我们可以用CoreData来存储用户的登陆信息,但这不免有点大材小用,而且用起来也是比较复杂的。那么我们有其他更便捷的方法吗?苹果这么注重用户体验,当然有其他的方法了,就是NSUserDefault. NSUserDefault设置完值以后要进行同步

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([usernameisEqualToString:password]){

//获取userDefault单例

NSUserDefaults*userDefaults = [NSUserDefaultsstandardUserDefaults];

//登陆成功后把用户名和密码存储到UserDefault

[userDefaultssetObject:usernameforKey:@"name"];[userDefaultssetObject:passwordforKey:@"password"];[userDefaultssynchronize];

//用模态跳转到主界面

UIStoryboard*storyboard = [UIStoryboardstoryboardWithName:@"Main"bundle:[NSBundlemainBundle]];

idmainViewController = [storyboardinstantiateViewControllerWithIdentifier:@"MainView"];[selfpresentViewController:mainViewControlleranimated:YEScompletion:^{

}];

}

}

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

//判断是否登陆,由登陆状态判断启动页面//获取UserDefaultNSUserDefaults *userDefault = [NSUserDefaults standardUserDefaults];NSString *name = [userDefault objectForKey:@"name"];//获取storyboardUIStoryboard *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 = [NSUserDefaultsstandardUserDefaults];

//移除UserDefaults中存储的用户信息

[userDefaultsremoveObjectForKey:@"name"];

[userDefaultsremoveObjectForKey:@"password"];[userDefaultssynchronize];

//获取storyboard

UIStoryboard*storyboard = [UIStoryboardstoryboardWithName:@"Main"bundle:[NSBundlemainBundle]];

//获取注销后要跳转的页面

idview = [storyboardinstantiateViewControllerWithIdentifier:@"LoginView"];//模态展示出登陆页面

[selfpresentViewController:viewanimated:YEScompletion:^{}];

}

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

相关文章

  • IOS开发之记录用户登陆状态,ios开发用户登陆

    如何记录用户的登陆状态呢? 用我们的CoreData蛮? CoreData适合处理大量的数据,一般和TableVi...

  • REST framework JWT Auth

    JWT 在用户注册或登陆后,我们想要记录用户的登陆状态,或者为用户创建身份认证的凭证。我们不再使用Session认...

  • iOS应用程序打包ipa转化为二维码

    一、证书和描述文件(要有开发者账号和用户手机的UDID) <1>登陆开发者中心 选择Account登陆开发者账号,...

  • 用户登陆验证系统

    回顾总结一下 flask 开发api时用到的用户登陆验证系统。基本的想法如下:1、用户登陆后,将用户的 uid 加...

  • 5.用户管理模块

    该模块主要有十个子模块:注册、登陆、用户名/邮箱验证、获取登陆用户信息、登陆状态重置密码、登陆状态下更新用户信息、...

  • app上架简述(mark)

    先登陆自己的开发者账号(自己提前注册好 iOS 开发者账号,这里假设你已经拥有了一个 iOS 开发者账号),进入这...

  • iOS实现登录状态处理

    今天要说的是如何记录我们用户的登陆状态。例如微信,QQ等,在用户登陆后,关闭应用在打开就直接登陆了。那么我们在项目...

  • 苹果开发者中心添加Devices

    首先,开发者账号要登陆苹果开发者中,进入iOS Provisioning Portal管理页面。 打开Device...

  • Django图书荐购云平台开发与实践 - 3用户信息模块

    接下来开发用户信息模块,用户信息模块主要包括用户注册、用户登录、显示用户信息、用户密码的修改。用户的注册、登陆、密...

  • 模拟网易云音乐练习

    页面展示及功能 1. 用户账户页 1.1 登陆 未登陆状态: 登陆: 登陆成功: 1.2 用户账户展示 2. 发现...

网友评论

      本文标题:IOS开发之记录用户登陆状态,ios开发用户登陆

      本文链接:https://www.haomeiwen.com/subject/injgnttx.html