iOS 自己主动登录,登录过程中一直显示载入页
iOS开发中 假设client做的人性化一点肯定会考虑自己主动登录
事实上原理非常easy,就是再首次登录成功之后将username和password存入userdefault 下次登录的时候推断usedefault中有没有存储usernamepassword,假设有的话就绕过登录界面直接登录
可是在做的过程中遇到了一个问题 如今做一整理,供大家学习,指正
一般实现自己主动登录都是在载入页中去实现。
可是登录一般都须要与server通信。是异步的,而载入页在主线程中。这样就无法控制载入页在登录完毕(也就是server返回信息之后)之后再消失
我遇到的问题就是登录还没有完毕,载入页已经完毕。就会跳出一个空白页面。等自己主动登录完毕之后才会跳转首页
解决的方法就是,自己做一个viewControl 界面和载入页一模一样,普通情况下载入页都是一张图片比方微信载入页面就是
watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="">
我们自己见里的 viewcontroller 仅仅须要设置一个全屏图片,讲载入页图片放上去。
然后再appdelegate 中推断 假设是自己主动登录 就直接将
rootViewController
设置为我们自己新建的viewcontroller
然后再登录完毕之后做跳转即可
上代码
首先是我自己新建的viewcontroller 仅仅须要载入一张图片就可以
@implementation ViewController
- (void)viewDidLoad {
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
UIImageView *imageView=[[UIImageView alloc]initWithFrame:SCREEN_FRAME];
imageView.image=[UIImage imageNamed:@"HelpSecond"];
[self.view addSubview:imageView];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
@end
第一次登录成功之后 将用户信息存入
NSUserDefaults *userD=[NSUserDefaults standardUserDefaults];
[userD setValue:loginUserinfo forKey:@"loginuserinfo"];
我的做法是将username password(md5加密过的。这样能够直接拉过来用) 存入字典。然后再将字典存入userdefault
下来在appdelegate 中推断是否usedefault中实username password 有的话 開始自己主动登录
NSUserDefaults *userD=[NSUserDefaults standardUserDefaults];
NSDictionary *loginUserinfoDic=[userD valueForKey:@"loginuserinfo"];
if (loginUserinfoDic!=NULL) {
[userD setValue:@"autologin" forKey:@"isautologin"];
ViewController *vc=[[ViewController alloc]init];
_window.rootViewController=vc;
LoginViewController *loginVC=[[LoginViewController alloc]init];
[loginVC login:loginUserinfoDic];
}
推断假设是 自己主动登录 首先讲 rootviewcontroller 设置为我们自己创建的viewcontroller
然后再调用自己主动登录方法
在自己主动登录完毕之后又一次设置rootviewcontreler就可以
-(void)loginSuccess
{ HomeViewController *homeVC=[[HomeViewController alloc]init];
ExploreViewController *exploreVC=[[ExploreViewController alloc]init];
EnjoyViewController *enjoyVC=[[EnjoyViewController alloc]init];
UserInfoViewController *userInfoVC=[[UserInfoViewController alloc]init]; UITabBarController *tabBarC=[[UITabBarController alloc]init];
tabBarC.viewControllers=@[homeVC,enjoyVC,exploreVC,userInfoVC];
//注意默认情况下UITabBarController在载入子视图时是懒载入的,所以这里调用一次contactController,否则在第一次展示时仅仅有第一个控制器tab图标。contactController的tab图标不会显示
for (UIViewController *controller in tabBarC.viewControllers) {
UIViewController *view= controller.view;
}
[UIApplication sharedApplication].keyWindow.rootViewController=tabBarC; }
ok 假设有问题欢迎加qq讨论
苹果开发群 :414319235 欢迎增加 欢迎讨论问题
iOS 自己主动登录,登录过程中一直显示载入页的更多相关文章
- Android ListView滑动过程中图片显示重复错乱闪烁问题解决
最新内容建议直接访问原文:Android ListView滑动过程中图片显示重复错乱闪烁问题解决 主要分析Android ListView滚动过程中图片显示重复.错乱.闪烁的原因及解决方法,顺带提及L ...
- AndroidListview 滑动过程中图片显示重复错乱解决方案
主要分析Android中Listview滚动过程造成的图片显示重复.错乱.闪烁的原因及解决方法,顺便跟进Listview的缓存机制. 1.原因分析 Listview item 缓存机制:为了使得性能更 ...
- Javascript在ajax提交过程中页面显示加载中,请等待效果,并在提交过程中限制确定按钮防止多次提交,提交完成后,解除提交限制
加载中,请等待div: <div id="load" class="center-in-center" style="display:none; ...
- 5月9日——vue渲染过程中{{xxx}}显示
异常显示的原因: 这是由于浏览器的渲染机制导致的,浏览器是从头到尾 如果你的js引用在底部,那么浏览器会先加载dom此时,你用于渲染的{{}}识别符,因为还没读到该识别符对应的js文件,所以会被解析 ...
- Kubernetes集群搭建过程中遇到的问题
1. 创建Nginx Pod过程中报如下错误: #kubectlcreate -f nginx-pod.yaml Error from server: error when creating &quo ...
- Android应用之——微信微博第三方sdk登录分享使用过程中的一些常见问题
前言 近期在使用第三方登录和分享的过程中遇到了非常多问题,一方面能够归结为自己经验的不足,还有一方面事实上也说明了官方文档的含糊不清.这篇博文不会写关于怎样使用第三方登录分享,由于官方文档已经写明了步 ...
- 【转】SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误
SQL Server -- 已成功与服务器建立连接,但是在登录过程中发生错误 最近在VS2013上连接远程数据库时,突然连接不上,在跑MSTest下跑的时候,QTAgent32 crash.换成IIS ...
- 配置Office 365单点登录过程中的一些注意事项
这些天一直在整O365单点登录的问题,其中涉及到了很多知识点,其中以ADFS,CA为主吧,IIS为辅.下面我就把这些天积累的一些经验写下来备用. 1. 申请证书不一定要通过“证书颁发机构Web注册”, ...
- 百度自动发贴,登录很顺利的模拟实现,但发贴攻关失败,能力有限,追JS过程中颇为痛苦
攻关失败,且短期内看不到希望,看不到方向,且越来越焦急,目前已知的是,用根据用户的鼠标事件以一定的规则结合其他数据,服务器以这些数据验证是否为真正的手动发贴. 不过闲暇时实现了百度贴吧的自动签到. 较 ...
随机推荐
- android创建桌面快捷键shortcut
有非常多人也写过创建桌面快捷键的blog.可是大部分都仅仅讲了怎么用,事实上技术使用起来都非常easy.可是你使用后下次还知道吗? 根本原因还是不清楚原理.今天我就来讲讲shortcut创建过程. 过 ...
- 2016.02.23,英语,《Vocabulary Builder》Unit 01
Bell:来源于拉丁语,含义为war.fight,其中Bellona [bә'lәunә]是罗马女战神的名字,她的丈夫是战神Mars.antebellum: [ˌænti'beləm] adj. 战前 ...
- USACO 2.2 Runaround Numbers
Runaround Numbers Runaround numbers are integers with unique digits, none of which is zero (e.g., 81 ...
- 杂项-公司:Altera
ylbtech-杂项-公司:Altera 自二十年前发明世界上第一个可编程逻辑器件开始,Altera公司(阿尔特拉)(NASDAQ:ALTR)秉承了创新的传统,是世界上“可编程芯片系统”(SOPC)解 ...
- batch normalization学习理解笔记
batch normalization学习理解笔记 最近在Andrew Ng课程中学到了Batch Normalization相关内容,通过查阅资料和原始paper,基本上弄懂了一些算法的细节部分,现 ...
- tomcat映射路径(应用程序基本目录)的配置方法
tomcat映射路径的配置方法 一.默认配置 位置:/conf 文件夹里的server.xml文件 <Host appBase="webapps"> appBase:可 ...
- Kylin基础教程(一)
一.Kylin介绍 1.1 现状 Hadoop于2006年初步实现,改变了企业级的大数据存储(基于HDFS)和批处理(主要基于MR)问题,10几年过去了,数据量随着互联网的发展井喷式增长,如何高速.低 ...
- PAT 天梯赛练习集 L1-006. 连续因子
题目链接:https://www.patest.cn/contests/gplt/L1-006 一个正整数N的因子中可能存在若干连续的数字.例如630可以分解为3*5*6*7,其中5.6.7就是3个连 ...
- HDU 5762 Teacher Bo ( 暴力 )
链接:传送门 题意:给出N个点( Xi , Yi ),和点的最远位置M,询问是否有这样的四个点 (A,B,C,D)(A<B,C<D,A≠CorB≠D) ,AB的曼哈顿路径长度等于CD的曼哈 ...
- 【bzoj 1502】月下柠檬树
月下柠檬树 题意 求n个圆与他们的公切线的定积分. 解法 求出圆的公切线就可以了. 特别坑的一点 : 最两端的圆,有可能会被其他的圆所包含,所以要重新求一下最左端与最右端. 比较坑的一点 : 精度要设 ...