之前搜了好多地方都没找到实现“登陆后不再显示登录界面,而默认自动登录”的方法。

待我发现有种存储方式叫NSUserDefaults的时候,立马又感觉新技能get了。

简介:

NSUserDefaults是IOS应用用来存储用户偏好和配置信息的途径,就像是一个数据库,但是它通过键值对(key-value)的方式存储。

比如["Thematrix" forkey:"blogname"]

使用方法:

一共需要3个key,分别是"Didlogin" "username""userpassword"

1.在AppDelegate.m的LaunchOption函数里:判断"Didlogin"字段:Yes->直接首页;No->登录页面。

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{ // Override point for customization after application launch.
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"Main" bundle:[NSBundle mainBundle]]; if(![[NSUserDefaults standardUserDefaults] boolForKey:@"Didlogin"]){
NSLog(@"未进行过登录,进行登录");
LoginViewController *LoginViewController =[storyboard instantiateViewControllerWithIdentifier:@"LoginViewController"]; self.window.rootViewController = LoginViewController;
}
else
{
NSLog(@"已经进行过登录,直接到首页"); IndexViewController * IndexViewController = [storyboard instantiateViewControllerWithIdentifier:@"IndexViewController"]; self.window.rootViewController = IndexViewController; } return YES;
}

2.在LoginViewController.m里:

如果成功登录,就把"Didlogin"设置成Yes,"username"和“userpassword”用来记录账号密码,以便下次自动登录时使用。

NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];

        [defaults setObject:self.username forKey:@"NSusername"];
[defaults setObject:self.password forKey:@"NSpassword"]; [defaults setBool:YES forKey:@"Didlogin"]; [defaults synchronize];//这句话的意义在于写入硬盘,必须。

3.退出账号后,记得把这3个字段的值清空。

[IOS NSUserDefaults]的使用:登陆后不再显示登录界面。的更多相关文章

  1. [NSUserDefaults]的使用:登陆后不再显示登录界面。

    简介: NSUserDefaults是IOS应用用来存储用户偏好和配置信息的途径,就像是一个数据库,但是它通过键值对(key-value)的方式存储. 比如["Thematrix" ...

  2. 安装Linux桌面后无法显示登录桌面

    安装完图形后无法显示图形界面,只有命令行模式界面 . 猜测原因可能跟电脑位有关,在BIOS中开启虚拟化技术, 电脑开启设置F2 /Security/Virtualization, 选择Enable. ...

  3. Ubuntu12.04安装搜狗输入法失败后,出现登录界面循环

    前些天,因为复现别人实验就准备重新启用实验室的集群上的系统,上去安装了几个插件,之后又觉得需要中文输入法就试着装一下,结果安装失败,看到报错信息,也没放在心上,第二天启动时发现再也登录不进去. 现象描 ...

  4. Android实例-处理隐藏输入法后不再显示问题(XE8+小米2)

    结果: 1.可以处理再次显示问题,但缺点是每个控件都要处理一次,累.哪位大神有好的处理方法,请M我. 实例代码: unit Unit1; interface uses System.SysUtils, ...

  5. js,jsp里将数据库Date类型获取出来后格式化显示于界面

    js:new Date(rowdata.updateTime).format("yyyy-MM-dd hh:mm:ss") jsp: <fmt:formatDate valu ...

  6. Skype无法显示登录界面

    Skype升级之后突然抽风,双击运行程序之后,输入用户名和密码的窗口都没了,截图如下(本机为Windows 7 32bit版本): 卸载重新安装,也无济于事.删除注册表中的Skype的相关信息后问题依 ...

  7. Ubuntu 16.04 NVidia显卡 输入密码后 重复出现登录界面

    问题根源:显卡驱动 解决办法: CTRL+ALT+F1 # 切换到命令行 sudo service lightdm stop  # 关闭桌面显示管理器 sudo apt-get remove --pu ...

  8. 1、IOS开发--iPad之仿制QQ空间(登录界面搭建+登录逻辑实现)

    开始搭建登录界面 登录界面效果图: 相关的图片资源下载百度云备份链接: http://pan.baidu.com/s/1o71cvMU 密码: 2h7e 步骤开始: 设置辅助窗口的位置在下方 快捷键o ...

  9. virtualbox中新版本Ubuntu安装软件增强包后重启无限登录界面的解决办法

    原来我虚拟机版本是4.2.10,装的Ubuntu3.3,因为版本过老使用出现了一些问题,于是换成14.04,安装成功,但是装增强包的时候,装完重启,无限登录界面,密码是对的. 看了网上的很多方法,什么 ...

随机推荐

  1. Tomcat 项目部署方式

    方法一:在Tomcat中的Conf目录中,在Server.Xml中的,<Host/>节点中添加: <Context Path="/Hello"Docbase=&q ...

  2. <实训|第十三天>linux中ACL权限控制以及磁盘配额,附编译属于自己的linux内核

    [root@localhost~]#序言 首先讲讲昨天关于缩容失败,开不机的解决方法:ACL权限也算是一个很重要的知识点,不难,但是很实用:磁盘配额一般不需要自己弄,但是要懂得原理.剩下的就是编译属于 ...

  3. 深入理解计算机系统(4.1)---X86的孪生兄弟,Y86指令体系结构

    引言 各位猿友们好,计算机系统系列很久没更新了,实在是抱歉之极.新的一年,为了给计算机系统系列添加一些新的元素,LZ将其更改为书的原名<深入理解计算机系统>.这本书非常厚,而且难度较高,L ...

  4. 2014 todo list

    1. 做好已知的各种项目,争取能成立固定团队2. 横向扩展技术学习,了解各种技术,加强技术素养3. 争取找个妹子4. 加强音律学习5. 继续发展各业余爱好6. 努力摇号 年底看收成.

  5. BGP--边界网关协议

    要全面了解BGP,首先我们要回答以下看上去很简单的问题:为什么需要BGP,也就是说BGP是如何产生的,它解决了什么问题.带着以上问题,我们先简单的回顾一个路由协议发展的轨迹. 首先路由的实质是描述一个 ...

  6. javascript数组去重的4个方法

    Array.prototype.unique1 = function(){//有局限性,1,“1”的情况会被去重,因为存入临时对象时,数组中的值被统一转换成了字符串 var obj = {},newA ...

  7. C# Cut Line Bressenham Algorithm

    using System; using System.Drawing; using System.Windows.Forms; namespace CutLine { static class Pro ...

  8. Oracle 11g 7个压缩包说明

    最初,我以为都要解压.无意间看到的一博客,明白压缩包的含义.哈哈 Oracle11g有多张安装光盘: 文件名称                                              ...

  9. Python 一些总结和比较

    数据类型

  10. yii2权限控制rbac之详细操作步骤

    本篇的主题是 rbac权限控制的详细操作步骤,注意是操作步骤哦,关于配置与rbac的搭建,我们在博文 yii2搭建完美后台并实现rbac权限控制实例教程说的再清楚不过了. 但是,在很多人的反馈下,说是 ...